You can subscribe to this list here.
2007 |
Jan
|
Feb
(65) |
Mar
(276) |
Apr
(544) |
May
(638) |
Jun
(225) |
Jul
(204) |
Aug
(294) |
Sep
(532) |
Oct
(506) |
Nov
(324) |
Dec
(359) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(208) |
Feb
(225) |
Mar
(248) |
Apr
(388) |
May
(222) |
Jun
(47) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <sv...@ze...> - 2007-03-13 18:13:11
|
Author: ecn Date: 2007-03-13 14:13:05 -0400 (Tue, 13 Mar 2007) New Revision: 4270 Modified: branches/zenoss-1.1.x/Products/ZenRRD/zenprocess.py Log: #1068: fix packets too big problem Modified: branches/zenoss-1.1.x/Products/ZenRRD/zenprocess.py =================================================================== --- branches/zenoss-1.1.x/Products/ZenRRD/zenprocess.py 2007-03-13 17:59:21 UTC (rev 4269) +++ branches/zenoss-1.1.x/Products/ZenRRD/zenprocess.py 2007-03-13 18:13:05 UTC (rev 4270) @@ -28,6 +28,7 @@ import Globals from Products.ZenUtils.Driver import drive, driveLater from Products.ZenUtils.NJobs import NJobs +from Products.ZenUtils.Chain import Chain from Products.ZenModel.PerformanceConf import performancePath from Products.ZenEvents import Event from Products.ZenEvents.ZenEventClasses import Status_Snmp, Status_OSProcess @@ -65,6 +66,10 @@ result.setdefault(v, []).append(a) return result +def chunk(lst, n): + 'break lst into n-sized chunks' + return [lst[i:i+n] for i in range(0, len(lst), n)] + class ScanFailure(Exception): pass class Pid: @@ -416,7 +421,7 @@ return defer.fail(ScanFailure(msg)) # in M-parallel, for each device # fetch the process status - self.perfScanJob = NJobs(MAX_OIDS_PER_REQUEST, + self.perfScanJob = NJobs(PARALLEL_JOBS, self.fetchDevicePerf, self.devices.values()) return self.perfScanJob.start() @@ -433,15 +438,20 @@ oids.extend([CPU + str(pid), MEM + str(pid)]) if not oids: return defer.succeed(([], device)) - d = device.get(oids) + d = Chain(device.get, iter(chunk(oids, MAX_OIDS_PER_REQUEST))).run() d.addCallback(self.storePerfStats, device) d.addErrback(self.error) return d - def storePerfStats(self, results, device): + def storePerfStats(self, all, device): "Save the performance data in RRD files" byConf = reverseDict(device.pids) + results = {} + for r in all: + success, values = r + if success: + results.update(values) for pidConf, pids in byConf.items(): if len(pids) != 1: log.warning("There are %d pids by the name %s", |
From: <sv...@ze...> - 2007-03-13 17:59:22
|
Author: jstevens Date: 2007-03-13 13:59:21 -0400 (Tue, 13 Mar 2007) New Revision: 4269 Modified: trunk/Products/ZenModel/skins/zenmodel/editStatusMonitorConf.pt Log: fixes #1067 * Added field to edit chunk size on status monitors Modified: trunk/Products/ZenModel/skins/zenmodel/editStatusMonitorConf.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editStatusMonitorConf.pt 2007-03-13 17:18:02 UTC (rev 4268) +++ trunk/Products/ZenModel/skins/zenmodel/editStatusMonitorConf.pt 2007-03-13 17:59:21 UTC (rev 4269) @@ -25,6 +25,16 @@ <!-- BEGIN TABLE CONTENTS --> <tr> + <td class="tableheader" align="left">Monitor Name</td> + <td class="tablevalues" tal:content="here/id"> + </td> + <td class="tableheader" align="left">Chunk Size</td> + <td class="tablevalues"> + <input class="tablevalues" type="text" name="chunk:int" + tal:attributes="value here/chunk" /> + </td> + </tr> + <tr> <td class="tableheader" align="left">Ping Timeout</td> <td class="tablevalues"> <input class="tablevalues" type="text" name="timeOut:float" |
From: <sv...@ze...> - 2007-03-13 17:19:51
|
Author: marc Date: 2007-03-13 13:18:02 -0400 (Tue, 13 Mar 2007) New Revision: 4268 Modified: trunk/Products/ZenModel/IpNetwork.py trunk/Products/ZenModel/ZenModelRM.py Log: #1062 * Added Networks to DmdRoots Modified: trunk/Products/ZenModel/IpNetwork.py =================================================================== --- trunk/Products/ZenModel/IpNetwork.py 2007-03-13 13:44:00 UTC (rev 4267) +++ trunk/Products/ZenModel/IpNetwork.py 2007-03-13 17:18:02 UTC (rev 4268) @@ -61,6 +61,8 @@ class IpNetwork(DeviceOrganizer): """IpNetwork object""" + isInTree = True + # Organizer configuration dmdRootName = "Networks" Modified: trunk/Products/ZenModel/ZenModelRM.py =================================================================== --- trunk/Products/ZenModel/ZenModelRM.py 2007-03-13 13:44:00 UTC (rev 4267) +++ trunk/Products/ZenModel/ZenModelRM.py 2007-03-13 17:18:02 UTC (rev 4268) @@ -97,7 +97,9 @@ if not context: context = self redirect = False - dest = REQUEST.form.get('dest') + dest = 'filesystem' + if REQUEST: + dest = REQUEST.form.get('dest') zenhome = os.getenv('ZENHOME') expDir = os.path.join(zenhome, 'export') fileBase = '%s_%s.xml' % (context.getNodeName(), context.id) |
From: <sv...@ze...> - 2007-03-13 13:44:30
|
Author: ian Date: 2007-03-13 09:44:00 -0400 (Tue, 13 Mar 2007) New Revision: 4267 Modified: trunk/Products/ZenEvents/skins/zenevents/actionRuleWindowDetail.pt trunk/Products/ZenEvents/skins/zenevents/editActionRule.pt trunk/Products/ZenEvents/skins/zenevents/editActionRuleMessage.pt trunk/Products/ZenEvents/skins/zenevents/editActionRuleSchedule.pt trunk/Products/ZenEvents/skins/zenevents/editActionRules.pt trunk/Products/ZenEvents/skins/zenevents/editEventCommand.pt trunk/Products/ZenEvents/skins/zenevents/editEventManager.pt trunk/Products/ZenEvents/skins/zenevents/editEventManagerFields.pt trunk/Products/ZenEvents/skins/zenevents/editEventManagerHistoryFields.pt trunk/Products/ZenEvents/skins/zenevents/editEventView.pt trunk/Products/ZenEvents/skins/zenevents/editEventViews.pt trunk/Products/ZenEvents/skins/zenevents/eventClassInstEdit.pt trunk/Products/ZenEvents/skins/zenevents/eventClassInstSequence.pt trunk/Products/ZenEvents/skins/zenevents/eventClassInstStatus.pt trunk/Products/ZenEvents/skins/zenevents/eventDetail.pt trunk/Products/ZenEvents/skins/zenevents/eventLog.pt trunk/Products/ZenEvents/skins/zenevents/eventsError.pt trunk/Products/ZenEvents/skins/zenevents/listEventCommands.pt trunk/Products/ZenEvents/skins/zenevents/viewEventDetail.pt trunk/Products/ZenEvents/skins/zenevents/viewEventFields.pt trunk/Products/ZenEvents/skins/zenevents/viewEventLog.pt trunk/Products/ZenEvents/skins/zenevents/viewEventMacros.pt trunk/Products/ZenEvents/skins/zenevents/viewEventsSimple.pt Log: * Newified all ZenEvents templates Modified: trunk/Products/ZenEvents/skins/zenevents/actionRuleWindowDetail.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/actionRuleWindowDetail.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/actionRuleWindowDetail.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -7,12 +7,26 @@ tal:attributes="action string:${here/absolute_url_path}"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="editable here/isManager"> - <tr tal:define="message request/message | string:State at time:"> - <th class=tabletitle colspan="2" - tal:content="string: ${message} ${here/getNowString}"/> - </tr> + + + <tal:block tal:define="editable here/isManager; + message request/message | string:State at time:; + tabletitle string: ${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <td class="tableheader">Name</td> <td class="tablevalues" tal:content="here/getId"/> @@ -99,7 +113,14 @@ name="manage_editActionRuleWindow:method"/> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/editActionRule.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/editActionRule.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/editActionRule.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -2,11 +2,25 @@ <tal:block metal:fill-slot="contentPane"> <form id="clauseForm" method="post" tal:attributes="action here/absolute_url_path"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> -<table class="zentable" cellpadding="3" cellspacing="1"> -<tr tal:define="message request/message | string:State at time:"> - <th class=tabletitle colspan="6" - tal:content="string:${message} ${here/getNowString}" /> -</tr> + + + <tal:block tal:define="message request/message | string:State at time:; + tabletitle string:${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <td class="tableheader">Delay (secs)</td> <td class="tablevalues"> @@ -69,7 +83,14 @@ name="manage_editActionRule:method" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> <script tal:content="structure here/getWhereClauseAsJavaScript" type="text/javascript"/> Modified: trunk/Products/ZenEvents/skins/zenevents/editActionRuleMessage.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/editActionRuleMessage.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/editActionRuleMessage.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -2,11 +2,25 @@ <tal:block metal:fill-slot="contentPane"> <form id="actionRule" method="post" tal:attributes="action here/absolute_url_path"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> -<table class="zentable" cellpadding="3" cellspacing="1"> -<tr tal:define="message request/message | string:State at time:"> - <th class=tabletitle colspan="6" - tal:content="string:${message} ${here/getNowString}" /> -</tr> + + + <tal:block tal:define="message request/message | string:State at time:; + tabletitle string:${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <td class="tableheader" colspan="6">Message (or Subject)</td> </tr> @@ -55,7 +69,14 @@ name="manage_editActionRule:method" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + <p> Message Format is a python format string. Fields are specified as %(fieldname)s. The list of fields available in the event database is: Modified: trunk/Products/ZenEvents/skins/zenevents/editActionRuleSchedule.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/editActionRuleSchedule.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/editActionRuleSchedule.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -3,17 +3,30 @@ <form method="post" tal:attributes="action here/absolute_url_path" > <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="objects here/windows/objectValuesAll; + + + <tal:block tal:define="objects here/windows/objectValuesAll; tableName string:actionrulewindow; - batch python:here.ZenTableManager.getBatch(tableName,objects);"> + batch python:here.ZenTableManager.getBatch(tableName,objects); + tabletitle string:Active Periods"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <input type='hidden' name='tableName' tal:attributes="value tableName" /> + <tr> - <th class="tabletitle" align="left" colspan="7"> - Active Periods - </th> - </tr> - <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'primarySortKey','Name','cmp')"> Name @@ -68,7 +81,14 @@ onClick="toggleSelect(this.form);return false"/> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/editActionRules.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/editActionRules.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/editActionRules.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -2,11 +2,28 @@ <tal:block metal:fill-slot="contentPane"> <form method="post" tal:attributes="action here/absolute_url_path" name="actionRules"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="objects python:here.objectValues(spec='ActionRule'); + + + <tal:block tal:define="objects python:here.objectValues(spec='ActionRule'); tableName string:eventactionrules; zem here/ZenTableManager; - batch python:zem.getBatch(tableName,objects);"> + batch python:zem.getBatch(tableName,objects); + tabletitle string:Alerting Rules"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <input type='hidden' name='tableName' tal:attributes="value tableName" /> <tr> <th tal:replace="structure python:zem.getTableHeader( @@ -53,7 +70,14 @@ onClick="toggleSelect(this.form);return false"/> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/editEventCommand.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/editEventCommand.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/editEventCommand.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -2,15 +2,29 @@ <tal:block metal:fill-slot="contentPane"> <form id="clauseForm" method="post" tal:attributes="action here/absolute_url_path"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> -<table class="zentable" cellpadding="3" cellspacing="1"> + + + <tal:block tal:define="message request/message | string:State at time:; + tabletitle string:${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <colgroup> <col width="20"> <col width="80"> </colgroup> -<tr tal:define="message request/message | string:State at time:"> - <th class=tabletitle colspan="2" - tal:content="string:${message} ${here/getNowString}" /> -</tr> <tr> <td class="tableheader">Enabled</td> <td class="tablevalues"> @@ -89,7 +103,14 @@ name="manage_editEventCommand:method" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> <script tal:content="structure here/getWhereClauseAsJavaScript" type="text/javascript"/> Modified: trunk/Products/ZenEvents/skins/zenevents/editEventManager.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/editEventManager.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/editEventManager.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -2,10 +2,26 @@ <tal:block metal:fill-slot="contentPane"> <form method="post" tal:attributes="action here/getPrimaryUrlPath"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr> - <th class="tabletitle" colspan="4">Connection Information</th> - </tr> + + + <tal:block tal:define=" + tabletitle string:Connection Information"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> <td class="tableheader" width="25%">Backend Type</td> <td class="tablevalues" tal:content="here/backend"/> @@ -45,12 +61,35 @@ tal:attributes='value here/port'> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + <br> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr> - <th class="tabletitle" colspan="4">Cache</th> - </tr> + + + <tal:block tal:define=" + tabletitle string:Cache"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> <td class="tableheader" width="25%">Cache Timeout</td> <td class="tablevalues"> @@ -79,12 +118,35 @@ tal:attributes='value here/dmd/ZenEventHistory/clearthresh'> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + <br> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr> - <th class="tabletitle" colspan="4">Maintenance</th> - </tr> + + + <tal:block tal:define=" + tabletitle string:Maintenance"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr class='tableheader'> <td class="tableheader"> Event Aging Threshold (hours) @@ -156,9 +218,17 @@ name='manage_clearHeartbeats:method'> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + <br> -<table class="zentable" cellpadding="3" cellspacing="1"> + +<table class=" zentable"> <tr> <td class="tableheader" width='25%'>Save Changes</td> <td class="tableheader"> @@ -167,6 +237,8 @@ </td> </tr> </table> + + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/editEventManagerFields.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/editEventManagerFields.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/editEventManagerFields.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -3,10 +3,26 @@ <tal:block tal:condition="python:'MSIE' in here.REQUEST.HTTP_USER_AGENT"> <form method="post" tal:attributes="action here/getPrimaryUrlPath"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr> - <th class="tabletitle" colspan="4">Connection Information</th> - </tr> + + + <tal:block tal:define=" + tabletitle string:Connection Information"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> <td class="tableheader" width="25%">Default Sort</td> <td class="tablevalues"> @@ -57,7 +73,14 @@ name='zmanage_editProperties:method'> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> @@ -68,10 +91,26 @@ <script src="zendragdrop.js"></script> <form method="post" tal:attributes="action here/getPrimaryUrlPath"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr> - <th class="tabletitle" colspan="4">Connection Information</th> - </tr> + + + <tal:block tal:define=" + tabletitle string:Connection Information"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> <td class="tableheader" width="25%">Default Sort</td> <td class="tablevalues"> @@ -194,7 +233,14 @@ name='zmanage_editProperties:method'> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/editEventManagerHistoryFields.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/editEventManagerHistoryFields.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/editEventManagerHistoryFields.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -8,10 +8,26 @@ <script src="zendragdrop.js"></script> <form method="post" tal:attributes="action here/getPrimaryUrlPath"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr> - <th class="tabletitle" colspan="4">Connection Information</th> - </tr> + + + <tal:block tal:define=" + tabletitle string:Connection Information"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> <td class="tableheader" width="25%">Default Sort</td> <td class="tablevalues"> @@ -134,17 +150,40 @@ name='zmanage_editProperties:method'> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> <tal:block tal:condition="python:'MSIE' in here.REQUEST.HTTP_USER_AGENT"> <form method="post" tal:attributes="action here/getPrimaryUrlPath"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr> - <th class="tabletitle" colspan="4">Connection Information</th> - </tr> + + + <tal:block tal:define=" + tabletitle string:Connection Information"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> <td class="tableheader" width="25%">Default Sort</td> <td class="tablevalues"> @@ -194,7 +233,14 @@ name='zmanage_editProperties:method'> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/editEventView.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/editEventView.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/editEventView.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -2,11 +2,25 @@ <tal:block metal:fill-slot="contentPane"> <form id='clauseForm' method="post" tal:attributes="action here/absolute_url_path"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> -<table class="zentable" cellpadding="3" cellspacing="1"> -<tr tal:define="message request/message | string:State at time:"> - <th class=tabletitle colspan="2" - tal:content="string:${message} ${here/getNowString}" /> -</tr> + + + <tal:block tal:define="message request/message | string:State at time:; + tabletitle string:${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <td class="tableheader">Type</td> <td class="tablevalues"> @@ -103,7 +117,14 @@ name="manage_editEventView:method" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> <script tal:content="structure here/getWhereClauseAsJavaScript" type="text/javascript"/> Modified: trunk/Products/ZenEvents/skins/zenevents/editEventViews.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/editEventViews.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/editEventViews.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -2,11 +2,28 @@ <tal:block metal:fill-slot="contentPane"> <form method="post" tal:attributes="action here/absolute_url_path"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="objects python:here.objectValues(spec='CustomEventView'); + + + <tal:block tal:define="objects python:here.objectValues(spec='CustomEventView'); tableName string:eventactionrules; zem here/ZenTableManager; - batch python:zem.getBatch(tableName,objects);"> + batch python:zem.getBatch(tableName,objects); + tabletitle string:"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <input type='hidden' name='tableName' tal:attributes="value tableName" /> <tr> <th tal:replace="structure python:zem.getTableHeader( @@ -28,7 +45,7 @@ tal:content="view/getId"/> <td class="tablevalues" tal:content="view/type"/> <td class="tablevalues"> - <table class="zentable" border=0 cellpadding=0 cellspacing=1 + <table class=" zentable" border=0 cellpadding=0 cellspacing=1 metal:define-macro="eventrainbow" tal:on-error="structure string: <span class='errorvalues'>Events unavailable</span>"> @@ -63,7 +80,14 @@ onClick="toggleSelect(this.form);return false"/> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/eventClassInstEdit.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/eventClassInstEdit.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/eventClassInstEdit.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -5,11 +5,25 @@ tal:attributes="action string:${here/absolute_url_path}"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr tal:define="message request/message | string:State at time:"> - <td class=tableheader colspan=4 - tal:content="string:${message} ${here/getNowString}" /> - </tr> + + + <tal:block tal:define="message request/message | string:State at time:; + tabletitle string:${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <td class="tableheader">Name</td> <td class="tablevalues"> @@ -98,7 +112,14 @@ name="manage_editEventClassInst:method" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/eventClassInstSequence.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/eventClassInstSequence.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/eventClassInstSequence.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -2,18 +2,32 @@ <tal:block metal:fill-slot="contentPane"> <form method="post" tal:attributes="action here/absolute_url_path"> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="objects here/sameKey; + + + <tal:block tal:define="objects here/sameKey; tableName string:eventinstsequence; batch python:here.ZenTableManager.getBatch(tableName,objects, - sortedHeader='sequence');"> + sortedHeader='sequence'); + tabletitle string:"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <input type='hidden' name='tableName' tal:attributes="value tableName" /> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> - <tr><th class="tabletitle" align="left" colspan="4" - tal:content="string:Order of Processing for Key: ${here/eventClassKey}"> - </th> - </tr> + <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'sequence','Sequence')"> @@ -60,7 +74,14 @@ <span metal:use-macro="here/zenTableNavigation/macros/navbody" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/eventClassInstStatus.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/eventClassInstStatus.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/eventClassInstStatus.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -1,28 +1,67 @@ <tal:block metal:use-macro="here/templates/macros/page2"> <tal:block metal:fill-slot="contentPane"> -<table class="zentable" cellpadding="3" cellspacing="1"> + + + <tal:block tal:define=" + tabletitle string:Status"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> - <th class="tabletitle" align="left" colspan="4">Status</th> - </tr> - <tr> <td class="tableheader">Events</td> <td class="tablevalues"> - <table metal:use-macro="here/deviceStatus/macros/eventrainbow" /> + <table metal:use-macro="here/deviceStatus/macros/eventrainbow"></table> </td> <th class="tableheader" align="left">Total Event Count</th> <td class="tablevalues" align="center" tal:content="here/getStatus"> 100</td> </tr> -</table> + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + + <span metal:use-macro="here/templates/macros/contentSeparator"/> -<table class="zentable" cellpadding="3" cellspacing="1"> + + + <tal:block tal:define=" + tabletitle string:EventClassInst"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> - <th class="tabletitle" align="left" colspan="6">EventClassInst</th> - </tr> - <tr> <td class="tableheader" width="15%">Event Class Key</td> <td class="tablevalues" tal:content="here/eventClassKey">name</td> </tr> @@ -79,7 +118,14 @@ <td class="tablevalues" tal:content="here/applyDeviceContext">regex</td> </tr> --> -</table> + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + + </tal:block> </tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/eventDetail.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/eventDetail.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/eventDetail.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -4,7 +4,25 @@ objects event/getEventDetails; fields event/getEventFields;" > - <table class="zentable" cellpadding="3" cellspacing="1"> + + + <tal:block tal:define="odd repeat/field/odd; + tabletitle string:Event Detail"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <th class="tableheader">Field</th> <th class="tableheader">Value</th> @@ -16,6 +34,13 @@ <td class="tablevalues" tal:content="python:field[1]">value</td> </tr> </tal:block> - </table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </tal:block> </tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/eventLog.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/eventLog.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/eventLog.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -1,7 +1,25 @@ <tal:block metal:use-macro="here/viewEventMacros/macros/betterEventDetailPage"> <tal:block metal:fill-slot="eventContentPane" tal:define="objects event/getEventLogs;"> - <table class="zentable" cellpadding="3" cellspacing="1"> + + + <tal:block tal:define=" + tabletitle string:Event Log"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <th class="tableheader">Date</th> <th class="tableheader">User</th> @@ -24,6 +42,13 @@ </form> </td> </tr> - </table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </tal:block> </tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/eventsError.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/eventsError.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/eventsError.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -1,7 +1,32 @@ -<table class="zentable" cellpadding="3" cellspacing="1"> + + + <tal:block tal:define=" + tabletitle tabletitle | string:"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <td class="errortitle"> Events Unavailable </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + Modified: trunk/Products/ZenEvents/skins/zenevents/listEventCommands.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/listEventCommands.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/listEventCommands.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -4,12 +4,29 @@ method="post" tal:attributes="action here/absolute_url_path"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define=" + + + <tal:block tal:define=" tableName string:eventCommands; zem here/ZenTableManager; objects here/commands; - batch python: here.ZenTableManager.getBatch(tableName,objects);"> + batch python: here.ZenTableManager.getBatch(tableName,objects); + tabletitle string:"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <th class="tableheader" colspan="5">Commands triggered by events:</th> </tr> @@ -58,7 +75,14 @@ onClick="toggleSelect(this.form);return false"/> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + <input type="submit" name="manage_editCommands:method" value="Submit"/> </form> </tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/viewEventDetail.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/viewEventDetail.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/viewEventDetail.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -8,7 +8,7 @@ "> <!--tal:on-error="python:'Unable to load detail for event: %s' % evid"--> <tal:block metal:use-macro="here/viewEventFields/macros/eventTop"/> -<table class="zentable" cellpadding="3" cellspacing="1"> +<table class=" zentable" cellpadding="3" cellspacing="1"> <tr> <th class="tableheader">Field</th> <th class="tableheader">Value</th> Modified: trunk/Products/ZenEvents/skins/zenevents/viewEventFields.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/viewEventFields.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/viewEventFields.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -22,7 +22,7 @@ </head> <tal:block metal:define-macro="eventTabs"> <div id="tabsPane"> -<table class="zentable" cellspacing="1"> +<table class=" zentable" cellspacing="1"> <tr> <td class="tabletitle" colspan=3 tal:content="string:Event: ${evid}"> @@ -54,7 +54,7 @@ </tal:block> </tal:block> <tal:block metal:define-macro="eventFields"> -<table class="zentable" cellpadding="3" cellspacing="1"> +<table class=" zentable" cellpadding="3" cellspacing="1"> <tr> <th class="tableheader">Field</th> <th class="tableheader">Value</th> Modified: trunk/Products/ZenEvents/skins/zenevents/viewEventLog.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/viewEventLog.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/viewEventLog.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -7,7 +7,7 @@ objects event/getEventLogs; "> <tal:block metal:use-macro="here/viewEventFields/macros/eventTop"/> -<table class="zentable" cellpadding="3" cellspacing="1"> +<table class=" zentable" cellpadding="3" cellspacing="1"> <tr> <th class="tableheader">Date</th> <th class="tableheader">User</th> Modified: trunk/Products/ZenEvents/skins/zenevents/viewEventMacros.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/viewEventMacros.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/viewEventMacros.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -17,19 +17,39 @@ <script type="text/javascript" src="/zport/js/MochiKit.js"></script> - <table class="zentable" cellspacing="1"> - <tr> - <td class="tabletitle" colspan="1" align="center" - tal:repeat="tab python:event.zentinelTabs(template.id)"> - <a class="tabletitle" + + + <tal:block tal:define=" + tabletitle string:<a class="tabletitle" tal:attributes="href python:tab['action']+'?evid=%s'%evid; class python:tab.get('selected',None) and 'tabletitleselected' or 'tabletitle'" tal:content="tab/name"> TabName - </a> - </td> - </tr> - </table> + </a>"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + <script> var tt = document.getElementById("tabsPane") if(tt) { Modified: trunk/Products/ZenEvents/skins/zenevents/viewEventsSimple.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/viewEventsSimple.pt 2007-03-12 21:44:38 UTC (rev 4266) +++ trunk/Products/ZenEvents/skins/zenevents/viewEventsSimple.pt 2007-03-13 13:44:00 UTC (rev 4267) @@ -1,21 +1,33 @@ <tal:block metal:use-macro="here/templates/macros/page2"> <tal:block metal:fill-slot="contentPane"> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="tableName string:viewevents; + + + <tal:block tal:define="tableName string:viewevents; whereclause request/ev_whereclause | python:None; orderby request/ev_orderby | python:None; resultFields request/ev_resultfields | here/resultFields; objects python:here.getEvents(where=whereclause, orderby=orderby, resultFields=resultFields); - evcolspan python:len(resultFields)+1;"> + evcolspan python:len(resultFields)+1; + tabletitle string:Live Events"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> - <td class="tabletitle" align=center colspan=4 - tal:attributes="colspan evcolspan"> - Live Events - </td> - </tr> - <tr> <th class=tableheader tal:repeat="headername resultFields" tal:content=headername> </th> @@ -39,7 +51,14 @@ </a> </td> </tr> -</table> + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + + </tal:block> </tal:block> |
From: <sv...@ze...> - 2007-03-12 21:44:40
|
Author: ian Date: 2007-03-12 17:44:38 -0400 (Mon, 12 Mar 2007) New Revision: 4266 Modified: trunk/Products/ZenModel/skins/zenmodel/administeredDevices.pt trunk/Products/ZenModel/skins/zenmodel/commandOutputTemplate.pt trunk/Products/ZenModel/skins/zenmodel/deviceCustomEdit.pt trunk/Products/ZenModel/skins/zenmodel/deviceGraphNets.pt trunk/Products/ZenModel/skins/zenmodel/deviceGraphRouters.pt trunk/Products/ZenModel/skins/zenmodel/deviceListMacro.pt trunk/Products/ZenModel/skins/zenmodel/deviceLoggingHeader.pt trunk/Products/ZenModel/skins/zenmodel/deviceMacros.pt trunk/Products/ZenModel/skins/zenmodel/deviceSearchResults.pt trunk/Products/ZenModel/skins/zenmodel/editDaemonConfig.pt trunk/Products/ZenModel/skins/zenmodel/editDeviceReport.pt trunk/Products/ZenModel/skins/zenmodel/editManufacturer.pt trunk/Products/ZenModel/skins/zenmodel/editMibModule.pt trunk/Products/ZenModel/skins/zenmodel/editPerformanceConf.pt trunk/Products/ZenModel/skins/zenmodel/editProductClass.pt trunk/Products/ZenModel/skins/zenmodel/editRRDDataPoint.pt trunk/Products/ZenModel/skins/zenmodel/editRRDDataSource.pt trunk/Products/ZenModel/skins/zenmodel/editRRDGraph.pt trunk/Products/ZenModel/skins/zenmodel/editRRDThreshold.pt trunk/Products/ZenModel/skins/zenmodel/editSettings.pt trunk/Products/ZenModel/skins/zenmodel/editStatusMonitorConf.pt trunk/Products/ZenModel/skins/zenmodel/editUserSettings.pt trunk/Products/ZenModel/skins/zenmodel/ipProcessManage.pt trunk/Products/ZenModel/skins/zenmodel/ipServiceClassEdit.pt trunk/Products/ZenModel/skins/zenmodel/ipServiceClassManage.pt trunk/Products/ZenModel/skins/zenmodel/ipServiceClassStatus.pt trunk/Products/ZenModel/skins/zenmodel/ipServiceDetail.pt trunk/Products/ZenModel/skins/zenmodel/ipServiceManage.pt trunk/Products/ZenModel/skins/zenmodel/logged_out.pt trunk/Products/ZenModel/skins/zenmodel/maintenanceWindowDetail.pt trunk/Products/ZenModel/skins/zenmodel/manageUserFolder.pt trunk/Products/ZenModel/skins/zenmodel/monitorList.pt trunk/Products/ZenModel/skins/zenmodel/objRRDTemplate.pt trunk/Products/ZenModel/skins/zenmodel/osProcessClassEdit.pt trunk/Products/ZenModel/skins/zenmodel/osProcessClassManage.pt trunk/Products/ZenModel/skins/zenmodel/osProcessClassStatus.pt trunk/Products/ZenModel/skins/zenmodel/osProcessDetail.pt trunk/Products/ZenModel/skins/zenmodel/osProcessManage.pt trunk/Products/ZenModel/skins/zenmodel/reportMacros.pt trunk/Products/ZenModel/skins/zenmodel/serviceClassEdit.pt trunk/Products/ZenModel/skins/zenmodel/serviceClassManage.pt trunk/Products/ZenModel/skins/zenmodel/serviceClassStatus.pt trunk/Products/ZenModel/skins/zenmodel/serviceManage.pt trunk/Products/ZenModel/skins/zenmodel/simpleDashboard.pt trunk/Products/ZenModel/skins/zenmodel/top.pt trunk/Products/ZenModel/skins/zenmodel/userCommandDetail.pt trunk/Products/ZenModel/skins/zenmodel/viewDaemonConfig.pt trunk/Products/ZenModel/skins/zenmodel/viewDaemonLog.pt trunk/Products/ZenModel/skins/zenmodel/viewDeviceReport.pt trunk/Products/ZenModel/skins/zenmodel/viewIpAddressOverview.pt trunk/Products/ZenModel/skins/zenmodel/viewManufacturerOverview.pt trunk/Products/ZenModel/skins/zenmodel/viewMibModule.pt trunk/Products/ZenModel/skins/zenmodel/viewMibNode.pt trunk/Products/ZenModel/skins/zenmodel/viewMibNotification.pt trunk/Products/ZenModel/skins/zenmodel/viewPackDetail.pt trunk/Products/ZenModel/skins/zenmodel/viewPerformanceConfOverview.pt trunk/Products/ZenModel/skins/zenmodel/viewProductClassOverview.pt trunk/Products/ZenModel/skins/zenmodel/viewProductOverview.pt trunk/Products/ZenModel/skins/zenmodel/viewRRDTemplate.pt trunk/Products/ZenModel/skins/zenmodel/viewReportClass.pt trunk/Products/ZenModel/skins/zenmodel/viewServerPerformance.pt trunk/Products/ZenModel/skins/zenmodel/viewStatusMonitorOverview.pt trunk/Products/ZenModel/skins/zenmodel/viewSystemPerformance.pt trunk/Products/ZenModel/skins/zenmodel/viewZenPacks.pt trunk/Products/ZenModel/skins/zenmodel/winProcessManage.pt trunk/Products/ZenModel/skins/zenmodel/winServiceDetail.pt trunk/Products/ZenModel/skins/zenmodel/winServiceManage.pt trunk/Products/ZenModel/skins/zenmodel/zenossConfigs.pt trunk/Products/ZenModel/skins/zenmodel/zenossInfo.pt trunk/Products/ZenModel/skins/zenmodel/zenossVersions.pt Log: * New tables for all ZenModel templates. Please, please check these for errors in passing. Modified: trunk/Products/ZenModel/skins/zenmodel/administeredDevices.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/administeredDevices.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/administeredDevices.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -3,15 +3,30 @@ <form method="post" tal:attributes="action here/absolute_url_path"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="objects here/adminRoles/objectValuesAll; + + +<tal:block tal:define="objects here/adminRoles/objectValuesAll; editable here/isManager; tableName string:deviceadminroles; - batch python:here.ZenTableManager.getBatch(tableName,objects);"> + batch python:here.ZenTableManager.getBatch(tableName,objects); + tabletitle string:Administered Devices"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <input type='hidden' name='tableName' tal:attributes="value tableName" /> - <tr> - <th class="tabletitle" colspan="5">Administered Devices</th> - </tr> + <tr tal:define="message request/message | string:"> <td class=tableheader colspan=5 tal:content="message" /> </tr> @@ -50,17 +65,17 @@ <tal:block tal:content="ur/level" tal:condition="not:editable"/> </td> <td class="tablevalues" align="left"> - <table class="zentable" border=0 cellpadding=0 cellspacing=1 - tal:on-error="structure string: - <span class='errorvalues'>Events unavailable</span>"> + + <table class="zentable "> <tr> - <td align=center width=16% + <td align='center' width='16%' tal:repeat="evt ur/getEventSummary" tal:attributes="class python:evt[0]"> - <span tal:replace="python:'%d/%d' % (evt[1],evt[2])"/> + <span + tal:replace="python:'%d/%d' % (evt[1],evt[2])"></span> </td> </tr> - </table> + </td> </tr> </tal:block> @@ -92,7 +107,14 @@ onClick="toggleSelect(this.form);return false"/> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/commandOutputTemplate.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/commandOutputTemplate.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/commandOutputTemplate.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -9,8 +9,25 @@ <div metal:use-macro="here/templates/macros/tabsPane"/> <script type="text/javascript">zenPageInit()</script> <div id="contentPane"> - <table class="zentable" cellpadding="3" cellspacing="0"> - <tr><th class="tabletitle">Command Output</th></tr> + + + <tal:block tal:define="tabletitle string:Command Output"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> <td class="tablevalues" valign="top"> Command: @@ -29,7 +46,14 @@ </td> </tr> OUTPUT_TOKEN - </table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </div> </div> </body> Modified: trunk/Products/ZenModel/skins/zenmodel/deviceCustomEdit.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceCustomEdit.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/deviceCustomEdit.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -4,14 +4,26 @@ <form method="post" tal:attributes="action string:${request/URL1}"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="props here/visibleCustPropertyMap"> + + + <tal:block tal:define="props here/visibleCustPropertyMap; tabletitle string:Custom Properties"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> - <th class="tabletitle" colspan="4"> - Custom Properties - </th> - </tr> - <tr> <th class="tableheader" align="center">Property</th> <th class="tableheader" align="center">Value</th> <th class="tableheader" align="center">Type</th> @@ -61,7 +73,14 @@ name="saveCustProperties:method" value=" Save " /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/deviceGraphNets.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceGraphNets.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/deviceGraphNets.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -1,18 +1,38 @@ <tal:block metal:use-macro="here/templates/macros/page2"> <tal:block metal:fill-slot="contentPane"> -<table class="zentable" cellpadding="3" cellspacing="1" - metal:define-macro=deviceGraphNets - tal:define=" + + + <tal:block tal:define=" routers string:${here/absolute_url_path}/getRouterGraph; - networks string:${here/absolute_url_path}/getNetworkGraph"> + networks string:${here/absolute_url_path}/getNetworkGraph; tabletitle string:Graph"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> - <th class="tabletitle" colspan=4>Graph</th> - </tr> - <tr> <td class="tablevalues"> <img tal:attributes="src networks" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/deviceGraphRouters.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceGraphRouters.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/deviceGraphRouters.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -1,18 +1,38 @@ <tal:block metal:use-macro="here/templates/macros/page2"> <tal:block metal:fill-slot="contentPane"> -<table class="zentable" cellpadding="3" cellspacing="1" - metal:define-macro=deviceGraphRouters - tal:define=" + + + <tal:block tal:define=" routers string:${here/absolute_url_path}/getRouterGraph; - networks string:${here/absolute_url_path}/getNetworkGraph"> + networks string:${here/absolute_url_path}/getNetworkGraph; tabletitle string:Graph"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> - <th class="tabletitle" colspan=4>Graph</th> - </tr> - <tr> <td class="tablevalues"> <img tal:attributes="src routers" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/deviceListMacro.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceListMacro.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/deviceListMacro.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -35,18 +35,27 @@ tal:condition='here/devices/countObjects'> <script type="text/javascript" src="/zport/portal_skins/zenmodel/submitViaEnter.js"></script> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="objects here/devices/objectValuesAll; + + + <tal:block tal:define="objects here/devices/objectValuesAll; tableName string:devicelistmacro; - batch python:here.ZenTableManager.getBatch(tableName,objects);" - tal:condition="python: batch or - here.ZenTableManager.getTableState(tableName, 'filter')" - > - <tr> - <th class="tabletitle" align="left" colspan="5"> - Devices - </th> - </tr> + batch python:here.ZenTableManager.getBatch(tableName,objects); tabletitle string:Devices"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <input type='hidden' name='tableName' tal:attributes="value tableName" /> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> @@ -121,7 +130,14 @@ tal:define="numColumns string:5"> <span metal:use-macro="here/deviceListMacro/macros/deviceControl" /> </tal:block> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> @@ -163,18 +179,27 @@ <form method="post" tal:attributes="action here/absolute_url_path" name="deviceListForm" metal:define-macro="fullDevList"> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="objects here/devices/getSubComponents; + + + <tal:block tal:define="objects here/devices/getSubComponents; tableName string:devicelistmacro; - batch python:here.ZenTableManager.getBatch(tableName,objects);" - tal:condition="python: batch or - here.ZenTableManager.getTableState(tableName, 'filter')" - > - <tr> - <th class="tabletitle" align="left" colspan="5"> - Devices - </th> - </tr> + batch python:here.ZenTableManager.getBatch(tableName,objects); tabletitle string:Devices"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <span metal:define-macro="fullDevListBody" tal:omit-tag=""> <tr> <td colspan="5" class="tableheader" align='center'> @@ -218,9 +243,9 @@ tal:content="device/getProdState">prodstate </td > <td tal:define="severity python:4"> - <table class="zentable" border=0 cellpadding=0 cellspacing=1 - tal:on-error="structure string: - <span class='errorvalues'>Events unavailable</span>"> + + + <table class=" zentable"> <tr> <td align=center width=16% tal:repeat="evt python:device.getEventSummary(severity)" @@ -228,7 +253,10 @@ <span tal:replace="python:'%d/%d' % (evt[1],evt[2])"/> </td> </tr> + </table> + + </td> </tr> <tr> @@ -239,5 +267,12 @@ </span> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> Modified: trunk/Products/ZenModel/skins/zenmodel/deviceLoggingHeader.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceLoggingHeader.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/deviceLoggingHeader.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -27,7 +27,7 @@ <div metal:use-macro="here/templates/macros/tabsPane"/> <script type="text/javascript">zenPageInit()</script> <div id="contentPane"> - <table class="zentable" cellpadding="3" cellspacing="1"> + <table class=" zentable" cellpadding="3" cellspacing="1"> <tr><th class="tabletitle" colspan="4">Collection Log</th></tr> <tr> <th class="tableheader">Time</th> Modified: trunk/Products/ZenModel/skins/zenmodel/deviceMacros.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceMacros.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/deviceMacros.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -1,11 +1,23 @@ -<table class="zentable" cellpadding="3" cellspacing="1" - metal:define-macro="deviceOverviewBrief"> + + + <tal:block tal:define="tabletitle string:Device"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> - <th class=tabletitle align=left colspan=4> - Device - </th> - </tr> - <tr> <th class=tableheader align=left> Hostname </th> @@ -23,18 +35,37 @@ </span> </td> </tr> -</table> + <!-- END TABLE CONTENTS --> + </tal:block> + </tal:block> + </tal:block> + -<table class="zentable" cellpadding="3" cellspacing="1" - metal:define-macro="routerOverview"> + + + + + + <tal:block tal:define="loc here/getLocationName; tabletitle string:Device"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> - <th class=tabletitle align=left colspan=4> - Device - </th> - </tr> - <tr> <th class=tableheader align=left> Hostname </th> @@ -154,9 +185,16 @@ </span> </td> </tr> -</table> + <!-- END TABLE CONTENTS --> + </tal:block> + </tal:block> + </tal:block> + + + + <td metal:define-macro="pingStatus" tal:define="status device/getPingStatus" tal:attributes="class python:device.getStatusCssClass(status)" tal:content="python:here.convertStatus(status)" align="center"> Modified: trunk/Products/ZenModel/skins/zenmodel/deviceSearchResults.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceSearchResults.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/deviceSearchResults.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -5,24 +5,45 @@ <tal:block metal:fill-slot="contentPane"> <form method="post" tal:attributes="action request/URL"> -<table class="zentable" - cellpadding=3 cellspacing=1 - tal:define=" + + + <tal:block tal:define=" tableName string:devicesearchresults; query python: here.ZenTableManager.setReqTableState( tableName,'query', default='', reset=True); objects python: here.Devices.searchDevices(query); - batch python: here.ZenTableManager.getBatch(tableName,objects);"> - <tr> - <th class="tabletitle" colspan="5">Results</th> - </tr> + batch python: here.ZenTableManager.getBatch(tableName,objects); + tabletitle string:Results"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tbody metal:use-macro="here/deviceListMacro/macros/devListBody"/> <tr> <td colspan="5" class="tableheader" align='center'> <form metal:use-macro="here/zenTableNavigation/macros/navtool"/> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/editDaemonConfig.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editDaemonConfig.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/editDaemonConfig.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -7,13 +7,29 @@ tal:attributes=" actionx string:${url}/viewDaemonConfig?daemon=${daemon}; action url"> -<table class="zentable" cellpadding="3" cellspacing="1"> + + + <tal:block tal:define=" + url string:${here/absolute_url_path}; + data python:here.getConfigData(daemon); + tabletitle string:${daemon} Configuration File"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <thead> - <tr> - <th class="tabletitle" colspan="2"> - <code tal:content="daemon" /> Configuration File - </th> - </tr> + </thead> <tbody tal:define=" url string:${here/absolute_url_path}; @@ -38,7 +54,14 @@ </td> </tr> </tbody> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/editDeviceReport.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editDeviceReport.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/editDeviceReport.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -5,7 +5,24 @@ tal:attributes="action string:${here/absolute_url_path}"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> + + + <tal:block tal:define="message request/message | string:RRD Graph state at time:; tabletitle string:"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr tal:define="message request/message | string:RRD Graph state at time:"> <th class="tabletitle" colspan="2" tal:content="string:${message} ${here/getNowString}" /> @@ -99,7 +116,14 @@ name="zmanage_editProperties:method" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/editManufacturer.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editManufacturer.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/editManufacturer.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -5,11 +5,25 @@ tal:attributes="action string:${here/absolute_url_path}"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr tal:define="message request/message | string:State at time:"> - <th class=tabletitle colspan="6" - tal:content="string:${message} ${here/getNowString}" /> - </tr> + + + <tal:block tal:define="message request/message | string:State at time:; + tabletitle string:${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <td class="tableheader">Name</td> <td class="tablevalues"> @@ -69,7 +83,14 @@ name="manage_editManufacturer:method" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/editMibModule.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editMibModule.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/editMibModule.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -3,11 +3,25 @@ tal:define="editable here/isManager"> <form method="post" tal:attributes="action here/absolute_url_path"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> -<table class="zentable" cellpadding="4" cellspacing="1"> - <tr tal:define="message request/message | string:State at time:"> - <th class=tabletitle colspan="2" - tal:content="string:${message} ${here/getNowString}" /> - </tr> + + + <tal:block tal:define="message request/message | string:State at time:; + tabletitle string:${message} ${here/getNowString}:"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <td class="tableheader">Name</td> <td class="tablevalues" tal:condition="editable"> @@ -48,7 +62,14 @@ name="zmanage_editProperties:method" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/editPerformanceConf.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editPerformanceConf.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/editPerformanceConf.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -5,11 +5,24 @@ tal:attributes="action string:${here/absolute_url_path}"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr tal:define="message request/message | string:State at time:"> - <th class=tabletitle colspan=4 - tal:content="string:${message} ${here/getNowString}" /> - </tr> + + + <tal:block tal:define="message request/message | string:State at time:; + tabletitle string:${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> <tr> <td class="tableheader">Snmp Cycle Interval (secs)</td> <td class="tablevalues"> @@ -62,7 +75,14 @@ name="zmanage_editProperties:method" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/editProductClass.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editProductClass.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/editProductClass.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -5,7 +5,25 @@ tal:attributes="action string:${here/absolute_url_path}"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> + + + <tal:block tal:define="message request/message | string:State at time:; + tabletitle string:${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr tal:define="message request/message | string:State at time:"> <th class=tabletitle colspan="2" tal:content="string:${message} ${here/getNowString}" /> @@ -51,7 +69,14 @@ name="manage_editProductClass:method" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/editRRDDataPoint.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editRRDDataPoint.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/editRRDDataPoint.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -4,11 +4,25 @@ <form method=post tal:attributes="action string:${here/absolute_url_path}"> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr tal:define="message request/message | string:State at time:"> - <th class=tabletitle colspan="2" - tal:content="string:${message} ${here/getNowString}" /> - </tr> + + + <tal:block tal:define="message request/message | string:State at time:; + tabletitle string:${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <td class="tableheader">Name</td> <td class="tablevalues" tal:condition="here/isManager"> @@ -119,8 +133,15 @@ name="zmanage_editProperties:method" /> </td> </tr> -</table> + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/editRRDDataSource.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editRRDDataSource.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/editRRDDataSource.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -6,11 +6,25 @@ tal:attributes="action string:${here/absolute_url_path}"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr tal:define="message request/message | string:State at time:"> - <th class=tabletitle colspan="2" - tal:content="string:${message} ${here/getNowString}" /> - </tr> + + + <tal:block tal:define="message request/message | string:State at time:; + tabletitle string:${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <td class="tableheader">Name</td> <td class="tablevalues" tal:condition="editable"> @@ -313,21 +327,42 @@ name="zmanage_editProperties:method"/> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> <!-----------------------------------------------------------------> <form method="post" tal:attributes="action here/absolute_url_path"> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="tableName string:rrdtempdplist; + + + <tal:block tal:define="tableName string:rrdtempdplist; objects here/datapoints; - batch python:here.ZenTableManager.getBatch(tableName,objects)"> + batch python:here.ZenTableManager.getBatch(tableName,objects); tabletitle string:DataPoints"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> - <th class="tabletitle" align="left" colspan="4">DataPoints</th> - </tr> - <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'getId','Name')"/> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( @@ -366,7 +401,14 @@ </td> </tr> <input type='hidden' name='tableName' tal:attributes="value tableName" /> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> <!-----------------------------------------------------------------> Modified: trunk/Products/ZenModel/skins/zenmodel/editRRDGraph.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editRRDGraph.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/editRRDGraph.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -5,11 +5,25 @@ tal:attributes="action string:${here/absolute_url_path}"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr tal:define="message request/message | string:RRD Graph state at time:"> - <th class="tabletitle" colspan="2" - tal:content="string:${message} ${here/getNowString}" /> - </tr> + + + <tal:block tal:define="message request/message | string:RRD Graph state at time:; + tabletitle string:${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <td class="tableheader">Name</td> <td class="tablevalues" tal:condition="here/isManager"> @@ -162,7 +176,14 @@ name="zmanage_editProperties:method" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/editRRDThreshold.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editRRDThreshold.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/editRRDThreshold.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -5,11 +5,25 @@ tal:attributes="action string:${here/absolute_url_path}"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr tal:define="message request/message | string:state at time:"> - <th class="tabletitle" colspan="2" - tal:content="string:${message} ${here/getNowString}" /> - </tr> + + + <tal:block tal:define="message request/message | string:State at time:; + tabletitle string:${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <td class="tableheader">Name</td> <td class="tablevalues" tal:condition="here/isManager"> @@ -103,7 +117,14 @@ name="zmanage_editProperties:method" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/editSettings.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editSettings.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/editSettings.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -6,12 +6,25 @@ <form method=post tal:attributes="action string:${here/absolute_url_path}"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr tal:define="message request/message | string:State at time:"> - <th class=tabletitle colspan=4 - tal:content="string:${message} ${here/getNowString}" /> - </tr> - + + + <tal:block tal:define="message request/message | string:State at time:; + tabletitle string:${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <td class="tableheader" align="left">SMTP Host</td> <td class="tablevalues"> @@ -137,7 +150,14 @@ </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/editStatusMonitorConf.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editStatusMonitorConf.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/editStatusMonitorConf.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -5,11 +5,25 @@ tal:attributes="action string:${here/absolute_url_path}"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr tal:define="message request/message | string:State at time:"> - <th class=tabletitle colspan=4 - tal:content="string:${message} ${here/getNowString}" /> - </tr> + + + <tal:block tal:define="message request/message | string:State at time:; + tabletitle string:${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <td class="tableheader" align="left">Ping Timeout</td> <td class="tablevalues"> @@ -66,7 +80,14 @@ name="zmanage_editProperties:method" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/editUserSettings.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editUserSettings.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/editUserSettings.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -20,11 +20,25 @@ <form method=post tal:attributes="action string:${here/absolute_url_path}" name="user"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr tal:define="message request/message | string:State at time:"> - <th class=tabletitle colspan=4 - tal:content="string:${message} ${here/getNowString}" /> - </tr> + + + <tal:block tal:define="message request/message | string:State at time:; + tabletitle string:${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <td class="tableheader" align="left">Password</td> <td class="tablevalues"> @@ -112,7 +126,14 @@ name="manage_editUserSettings:method" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/ipProcessManage.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/ipProcessManage.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/ipProcessManage.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -3,14 +3,34 @@ <form method="post" tal:attributes="action here/absolute_url_path"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> - <table class="zentable" cellpadding="3" cellspacing="1"> - <tr> - <th class="tabletitle" colspan="2"> - Process Management - </th> - </tr> + + + <tal:block tal:define="tabletitle string:Process Management"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tal:block metal:use-macro="here/userCommandsMacros/macros/runCommand" /> - </table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> <span metal:use-macro="here/templates/macros/contentSeparator"/> Modified: trunk/Products/ZenModel/skins/zenmodel/ipServiceClassEdit.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/ipServiceClassEdit.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/ipServiceClassEdit.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -5,11 +5,25 @@ tal:attributes="action string:${here/absolute_url_path}"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr tal:define="message request/message | string:State at time:"> - <th class=tabletitle colspan="4" - tal:content="string:${message} ${here/getNowString}" /> - </tr> + + + <tal:block tal:define="message request/message | string:State at time:; + tabletitle string:${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <td class="tableheader">Monitor</td> <td class="tablevalues" colspan="3"> @@ -68,7 +82,14 @@ name="manage_editServiceClass:method" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/ipServiceClassManage.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/ipServiceClassManage.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/ipServiceClassManage.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -3,14 +3,34 @@ <form method="post" tal:attributes="action here/absolute_url_path"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> - <table class="zentable" cellpadding="3" cellspacing="1"> - <tr> - <th class="tabletitle" colspan="2"> - Service Management - </th> - </tr> + + + <tal:block tal:define="tabletitle string:Service Management"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tal:block metal:use-macro="here/userCommandsMacros/macros/runCommand" /> - </table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> <span metal:use-macro="here/templates/macros/contentSeparator"/> Modified: trunk/Products/ZenModel/skins/zenmodel/ipServiceClassStatus.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/ipServiceClassStatus.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/ipServiceClassStatus.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -1,10 +1,25 @@ <tal:block metal:use-macro="here/templates/macros/page2"> <tal:block metal:fill-slot="contentPane"> -<table class="zentable" cellpadding="3" cellspacing="1"> + + + <tal:block tal:define="tabletitle string:Service Class"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> - <th class="tabletitle" colspan="4">Service Class</th> - </tr> - <tr> <td class="tableheader">Name</td> <td class="tablevalues" tal:content="here/name"/> <td class="tableheader">Monitor</td> @@ -27,18 +42,37 @@ <td class="tablevalues" colspan="3" tal:content="python:', '.join(here.serviceKeys)"/> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + <span metal:use-macro="here/templates/macros/contentSeparator"/> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="tableName string:serviceinstances; + + + <tal:block tal:define="tableName string:serviceinstances; objects here/instances/objectValuesAll; - batch python:here.ZenTableManager.getBatch(tableName,objects)"> + batch python:here.ZenTableManager.getBatch(tableName,objects); tabletitle string:Service Instances"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> - <th class="tabletitle" align="left" colspan="4"> - Service Instances - </th> - </tr> - <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'getDeviceName','Device')"/> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( @@ -65,6 +99,13 @@ <form metal:use-macro="here/zenTableNavigation/macros/navtool"></form> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/ipServiceDetail.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/ipServiceDetail.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/ipServiceDetail.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -5,11 +5,25 @@ tal:attributes="action string:${here/absolute_url_path}"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1"> - <tr tal:define="message request/message | string:State at time:"> - <th class=tabletitle colspan="2" - tal:content="string:${message} ${here/getNowString}" /> - </tr> + + + <tal:block tal:define="message request/message | string:State at time:; + tabletitle string:${message} ${here/getNowString}"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + <tr> <td class="tableheader">Status</td> <td tal:define="status here/getStatus" @@ -102,7 +116,14 @@ name="manage_editService:method" /> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/ipServiceManage.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/ipServiceManage.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/ipServiceManage.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -3,14 +3,34 @@ <form method="post" tal:attributes="action here/absolute_url_path"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> - <table class="zentable" cellpadding="3" cellspacing="1"> - <tr> - <th class="tabletitle" colspan="2"> - Service Management - </th> - </tr> + + + <tal:block tal:define=" tabletitle string:Service Management"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tal:block metal:use-macro="here/userCommandsMacros/macros/runCommand" /> - </table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </form> <span metal:use-macro="here/templates/macros/contentSeparator"/> Modified: trunk/Products/ZenModel/skins/zenmodel/logged_out.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/logged_out.pt 2007-03-12 21:42:09 UTC (rev 4265) +++ trunk/Products/ZenModel/skins/zenmodel/logged_out.pt 2007-03-12 21:44:38 UTC (rev 4266) @@ -1,10 +1,26 @@ <tal:block metal:use-macro="here/templates/macros/page3"> <tal:block metal:fill-slot="contentPane"> -<table class="zentable" cellpadding="3" cellspacing="1"> + + + <tal:block tal:define="result here/isLoggedOut; + tabletitle string:Logout"> + <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + <!--====Optional titlebar slots============= + + <tal:block metal:fill-slot="filterslot"> + </tal:block> + + <tal:block metal:fill-slot="menuslot"> + </tal:block> + + ==========================================--> + + <tal:block metal:fill-slot="zentablecontents"> + <!-- BEGIN TABLE CONTENTS --> + + <tr> - <th class="tabletitle">Logout</th> -</tr> -<tr> <td tal:define="result here/isLoggedOut;"> <p tal:condition="python: result == 'True'">You have been logged out.</p> <div tal:condition="python: result == 'False'"> @@ -14,6 +30,13 @@ </div> </td> </tr> -</table> + + <!-- END TABLE CONTENTS --> + + </tal:block> + </tal:block> + </tal:block> + + </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/maintenanceWindowDetail.pt =================================================================== --- trunk/Products/ZenModel/skins/... [truncated message content] |
From: <sv...@ze...> - 2007-03-12 21:42:08
|
Author: jstevens Date: 2007-03-12 17:42:09 -0400 (Mon, 12 Mar 2007) New Revision: 4265 Added: trunk/bin/zenx Log: Adding zenx startup script Added: trunk/bin/zenx Property changes on: trunk/bin/zenx ___________________________________________________________________ Name: svn:executable + * |
From: <sv...@ze...> - 2007-03-12 21:35:59
|
Author: jstevens Date: 2007-03-12 17:35:58 -0400 (Mon, 12 Mar 2007) New Revision: 4264 Added: trunk/Products/ZenRRD/zenx.py Modified: trunk/Products/ZenModel/Device.py trunk/Products/ZenModel/PerformanceConf.py trunk/Products/ZenModel/RRDView.py Log: Adding zenx.py as well as some plumbing for the zenweb configuration. Modified: trunk/Products/ZenModel/Device.py =================================================================== --- trunk/Products/ZenModel/Device.py 2007-03-12 20:51:54 UTC (rev 4263) +++ trunk/Products/ZenModel/Device.py 2007-03-12 21:35:58 UTC (rev 4264) @@ -27,6 +27,7 @@ from Products.ZenStatus import pingtree from Products.ZenUtils.Graphics import NetworkGraph from Products.ZenUtils.Utils import setWebLoggingStream, clearWebLoggingStream +import RRDView # base classes for device from ManagedEntity import ManagedEntity @@ -453,6 +454,15 @@ self.zKeyPath,self.zMaxOIDPerRequest, cmds) + + def getPageChecks(self): + pageChecks = super(Device, self).getDataSourceCommands(pageChecks=True) + for pc in pageChecks: + pc['device'] = self.id or '' + pc['manageIp'] = self.manageIp or '' + return pageChecks + + def getXmlRpcTargets(self): """Return information for xmlrpc collection on this device in the form (devname, xmlRpcStatus, @@ -471,7 +481,7 @@ if templ is None: templ = super(Device, self).getRRDTemplate(name) return templ - + def getHWManufacturerName(self): """Return the hardware manufacturer name of this device. @@ -1277,7 +1287,6 @@ objpaq = self.primaryAq() perfServer = objpaq.getPerformanceServer() if perfServer: - import RRDView try: result = perfServer.currentValues(paths) if result: Modified: trunk/Products/ZenModel/PerformanceConf.py =================================================================== --- trunk/Products/ZenModel/PerformanceConf.py 2007-03-12 20:51:54 UTC (rev 4263) +++ trunk/Products/ZenModel/PerformanceConf.py 2007-03-12 21:35:58 UTC (rev 4264) @@ -254,6 +254,22 @@ return result + # getPageChecks is very similar to getDataSourceCommands above. The two are + # not incorporated because getPageChecks will likely soon be moving into + # a separate monitor for zenweb configuration. (WebConf.py?) + # I am trying to keep the web stuff segregated as much as possible to ease + # the refactoring later. + def getPageChecks(self, devname=None): + ''' Return info for zenweb testing on all devices. + ''' + result = [] + for dev in self.devices(): + if devname and dev.id != devname: continue + dev = dev.primaryAq() + result += dev.getPageChecks() + return result + + def getXmlRpcDevices(self, devname=None): '''Get the XMLRPC configuration for all devices. ''' Modified: trunk/Products/ZenModel/RRDView.py =================================================================== --- trunk/Products/ZenModel/RRDView.py 2007-03-12 20:51:54 UTC (rev 4263) +++ trunk/Products/ZenModel/RRDView.py 2007-03-12 21:35:58 UTC (rev 4264) @@ -301,16 +301,24 @@ return oids - def getDataSourceCommands(self): - """Return list of command definitions in the form + def getDataSourceCommands(self, pageChecks=False): + """Return list of command definitions. + If not pageChecks then ignore datasources of type PAGECHECK + and return results in the form [(name,compname,eventClass,eventKey,severity,command),...] + + If pageChecks then only consider datasources of type PAGECHECK + and return results that is a list of dictionaries. """ templ = self.getRRDTemplate(self.getRRDTemplateName()) if not templ: return () threshs = self.getThresholds(templ) result = [] basepath = self.rrdPath() - commandTypes = ['COMMAND', 'PAGECHECK'] + if pageChecks: + commandTypes = ['PAGECHECK'] + else: + commandTypes = ['COMMAND'] dataSources = [] [ dataSources.extend(templ.getRRDDataSources(x)) for x in commandTypes ] for ds in dataSources: @@ -325,10 +333,29 @@ (dp.rrdmin, dp.rrdmax), threshs.get(dp.name(),[]))) key = ds.eventKey or ds.id - result.append( (ds.usessh, ds.cycletime, ds.component, - ds.eventClass, key, ds.severity, - ds.getCommand(self), points) ) + if pageChecks: + result.append({ + 'datasource': ds.id or '', + 'datapoints': points or (), + #'datapoints': (), + 'cycletime': ds.cycletime or '', + 'component': ds.component or '', + 'eventClass': ds.eventClass or '', + 'eventKey': key or '', + 'severity': ds.severity or '', + 'userAgent': ds.userAgent or '', + 'recording': ds.recording or '', + 'initialUrl': ds.initialURL or '', + 'command': ds.getCommand(self) or '', + 'commandHash': ds.commandHash or '', + }) + else: + result.append( (ds.usessh, ds.cycletime, ds.component, + ds.eventClass, key, ds.severity, + ds.getCommand(self), points) ) return result + + def getXmlRpcTargets(self): Added: trunk/Products/ZenRRD/zenx.py |
From: <sv...@ze...> - 2007-03-12 20:51:54
|
Author: ecn Date: 2007-03-12 16:51:54 -0400 (Mon, 12 Mar 2007) New Revision: 4263 Modified: trunk/Products/ZenRRD/zenprocess.py Log: * fix stupid warning import Modified: trunk/Products/ZenRRD/zenprocess.py =================================================================== --- trunk/Products/ZenRRD/zenprocess.py 2007-03-12 20:49:44 UTC (rev 4262) +++ trunk/Products/ZenRRD/zenprocess.py 2007-03-12 20:51:54 UTC (rev 4263) @@ -26,8 +26,8 @@ from pynetsnmp.twistedsnmp import AgentProxy from pynetsnmp.tableretriever import TableRetriever except ImportError: - import warning - warning.warn("Using python-based snmp enging") + import warnings + warnings.warn("Using python-based snmp enging") from twistedsnmp.agentproxy import AgentProxy from twistedsnmp.tableretriever import TableRetriever |
From: <sv...@ze...> - 2007-03-12 20:49:48
|
Author: ecn Date: 2007-03-12 16:49:44 -0400 (Mon, 12 Mar 2007) New Revision: 4262 Modified: trunk/Products/ZenModel/Device.py Log: * fix stupid date conversion error Modified: trunk/Products/ZenModel/Device.py =================================================================== --- trunk/Products/ZenModel/Device.py 2007-03-12 14:35:28 UTC (rev 4261) +++ trunk/Products/ZenModel/Device.py 2007-03-12 20:49:44 UTC (rev 4262) @@ -436,7 +436,7 @@ for o in self.os.getMonitoredComponents(): if o.meta_type != "OSProcess": oids.extend(o.getSnmpOidTargets()) - return (float(self._lastChange), self.getSnmpConnInfo(), oids, max) + return (float(self.getLastChange()), self.getSnmpConnInfo(), oids, max) def getDataSourceCommands(self): |
From: <sv...@ze...> - 2007-03-12 14:35:57
|
Author: marc Date: 2007-03-12 10:35:28 -0400 (Mon, 12 Mar 2007) New Revision: 4261 Modified: trunk/Products/ZenEvents/EventManagerBase.py Log: #1034 * loadSchema should not be passed conn, conn is retrieved within loadSchema Modified: trunk/Products/ZenEvents/EventManagerBase.py =================================================================== --- trunk/Products/ZenEvents/EventManagerBase.py 2007-03-12 14:19:54 UTC (rev 4260) +++ trunk/Products/ZenEvents/EventManagerBase.py 2007-03-12 14:35:28 UTC (rev 4261) @@ -1156,11 +1156,7 @@ """get the conversion information from the omnibus server""" assert(self == self.dmd.ZenEventManager) self.loadSchema() - try: - conn = self.connect() - curs = conn.cursor() - self.dmd.ZenEventHistory.loadSchema(conn) - finally: self.close(conn) + self.dmd.ZenEventHistory.loadSchema() if REQUEST: return self.callZenScreen(REQUEST) |
From: <sv...@ze...> - 2007-03-12 14:20:11
|
Author: ecn Date: 2007-03-12 10:19:54 -0400 (Mon, 12 Mar 2007) New Revision: 4260 Modified: trunk/Products/ZenModel/Device.py Log: * missed this change from erik's branch Modified: trunk/Products/ZenModel/Device.py =================================================================== --- trunk/Products/ZenModel/Device.py 2007-03-12 13:26:53 UTC (rev 4259) +++ trunk/Products/ZenModel/Device.py 2007-03-12 14:19:54 UTC (rev 4260) @@ -436,7 +436,7 @@ for o in self.os.getMonitoredComponents(): if o.meta_type != "OSProcess": oids.extend(o.getSnmpOidTargets()) - return (self.getSnmpConnInfo(), oids, max) + return (float(self._lastChange), self.getSnmpConnInfo(), oids, max) def getDataSourceCommands(self): |
From: <sv...@ze...> - 2007-03-12 13:27:20
|
Author: marc Date: 2007-03-12 09:26:53 -0400 (Mon, 12 Mar 2007) New Revision: 4259 Modified: trunk/Products/ZenEvents/SyslogProcessing.py trunk/Products/ZenEvents/UpdateCheck.py Log: #1056 * Fixed references to self.dmd.ZenEventManager Modified: trunk/Products/ZenEvents/SyslogProcessing.py =================================================================== --- trunk/Products/ZenEvents/SyslogProcessing.py 2007-03-12 13:00:25 UTC (rev 4258) +++ trunk/Products/ZenEvents/SyslogProcessing.py 2007-03-12 13:26:53 UTC (rev 4259) @@ -84,7 +84,7 @@ evt = self.parseTag(evt, msg) #rest of msg now in summary of event evt = self.buildEventClassKey(evt) - self.dmd.ZenEventManager.sendEvent(evt) + self.zem.sendEvent(evt) def parsePRI(self, evt, msg): Modified: trunk/Products/ZenEvents/UpdateCheck.py =================================================================== --- trunk/Products/ZenEvents/UpdateCheck.py 2007-03-12 13:00:25 UTC (rev 4258) +++ trunk/Products/ZenEvents/UpdateCheck.py 2007-03-12 13:26:53 UTC (rev 4259) @@ -104,7 +104,7 @@ import socket summary = ('A new version of Zenoss (%s) has been released' % available.short()) - self.dmd.ZenEventManager.sendEvent(Event.Event(device=socket.getfqdn(), + zem.sendEvent(Event.Event(device=socket.getfqdn(), eventClass=Status_Update, severity=Event.Info, summary=summary)) |
From: <sv...@ze...> - 2007-03-12 13:00:25
|
Author: ian Date: 2007-03-12 09:00:25 -0400 (Mon, 12 Mar 2007) New Revision: 4258 Modified: trunk/Products/ZenModel/skins/zenmodel/zenoss.css trunk/Products/ZenWidgets/skins/zenui/css/menus.css Log: * Tweaked a few z-indexes to fix some overlapping issues Modified: trunk/Products/ZenModel/skins/zenmodel/zenoss.css =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/zenoss.css 2007-03-12 12:44:39 UTC (rev 4257) +++ trunk/Products/ZenModel/skins/zenmodel/zenoss.css 2007-03-12 13:00:25 UTC (rev 4258) @@ -66,7 +66,7 @@ left: 0px; border-right: 1px solid black; cursor: pointer; - z-index: 3000; + z-index: 4000; width: 115px; /*background: #5a6f8f url('img/titlebar_bg.gif') top left repeat-x;*/ background: transparent url('img/leftpanetoggle_bg_expanded.gif') @@ -724,7 +724,7 @@ height: 20px; width: 115px; border-right: 1px solid black; - z-index: 1000; + z-index: 4000; cursor: pointer; background: transparent url('img/paneToggle_bg.gif') top left no-repeat; } Modified: trunk/Products/ZenWidgets/skins/zenui/css/menus.css =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/css/menus.css 2007-03-12 12:44:39 UTC (rev 4257) +++ trunk/Products/ZenWidgets/skins/zenui/css/menus.css 2007-03-12 13:00:25 UTC (rev 4258) @@ -46,7 +46,7 @@ width: 172px; top: 24px; border-top: 0px; - z-index: 3005; + z-index: 4005; padding-bottom: 10px; padding-top: 10px; } |
From: <sv...@ze...> - 2007-03-12 12:45:07
|
Author: ian Date: 2007-03-12 08:44:39 -0400 (Mon, 12 Mar 2007) New Revision: 4257 Modified: trunk/Products/ZenEvents/skins/zenevents/addEvent.pt trunk/Products/ZenEvents/skins/zenevents/eventClassStatus.pt trunk/Products/ZenEvents/skins/zenevents/eventMappingList.pt trunk/Products/ZenEvents/skins/zenevents/viewEvents.pt trunk/Products/ZenEvents/skins/zenevents/viewHistoryEvents.pt trunk/Products/ZenModel/skins/zenmodel/Dashboard.pt trunk/Products/ZenModel/skins/zenmodel/addDevice.pt trunk/Products/ZenModel/skins/zenmodel/deviceHardwareDetail.pt trunk/Products/ZenModel/skins/zenmodel/deviceList.pt trunk/Products/ZenModel/skins/zenmodel/deviceManagement.pt trunk/Products/ZenModel/skins/zenmodel/deviceOrganizerManage.pt trunk/Products/ZenModel/skins/zenmodel/deviceOrganizerStatus.pt trunk/Products/ZenModel/skins/zenmodel/deviceOsDetail.pt trunk/Products/ZenModel/skins/zenmodel/deviceSoftwareDetail.pt trunk/Products/ZenModel/skins/zenmodel/deviceStatus.pt trunk/Products/ZenModel/skins/zenmodel/editCustSchema.pt trunk/Products/ZenModel/skins/zenmodel/editDevice.pt trunk/Products/ZenModel/skins/zenmodel/maintenanceWindowsMacro.pt trunk/Products/ZenModel/skins/zenmodel/mibOrganizerOverview.pt trunk/Products/ZenModel/skins/zenmodel/objRRDTemplate.pt trunk/Products/ZenModel/skins/zenmodel/osProcessOrganizerManage.pt trunk/Products/ZenModel/skins/zenmodel/osProcessOrganizerOverview.pt trunk/Products/ZenModel/skins/zenmodel/perfConfig.pt trunk/Products/ZenModel/skins/zenmodel/serviceOrganizerManage.pt trunk/Products/ZenModel/skins/zenmodel/serviceOrganizerOverview.pt trunk/Products/ZenModel/skins/zenmodel/templates.pt trunk/Products/ZenModel/skins/zenmodel/userCommandsMacros.pt trunk/Products/ZenModel/skins/zenmodel/viewHistory.pt trunk/Products/ZenModel/skins/zenmodel/viewIpInterface.pt trunk/Products/ZenModel/skins/zenmodel/viewManufacturers.pt trunk/Products/ZenModel/skins/zenmodel/viewNetworkOverview.pt trunk/Products/ZenModel/skins/zenmodel/viewPerformanceDetail.pt trunk/Products/ZenModel/skins/zenmodel/viewRRDTemplate.pt trunk/Products/ZenModel/skins/zenmodel/zPropertyEdit.pt trunk/Products/ZenModel/skins/zenmodel/zenoss.css trunk/Products/ZenRelations/ExportDevices.py trunk/Products/ZenUtils/js/zenui.js trunk/Products/ZenWidgets/skins/zenui/zenuimacros.pt Log: * Changed many templates to use the new tables. Probably going to write a script to handle the rest, as there are a couple hundred. These are the ones immediately visible on zenoss. Modified: trunk/Products/ZenEvents/skins/zenevents/addEvent.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/addEvent.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenEvents/skins/zenevents/addEvent.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -10,7 +10,12 @@ <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> - <table class="zentable" cellpadding="3" cellspacing="1"> + +<tal:block tal:define="tabletitle string:Add Event;"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr> <td class="tableheader" align="left"> Message @@ -50,7 +55,6 @@ <option tal:repeat="sev here/getSeverities" tal:content="python:sev[0]" tal:attributes="value python:sev[1]" /> - </select> </td> </tr> @@ -86,7 +90,12 @@ name="manage_addEvent:method" value=" Add Event "/> </td> </tr> - </table> - </form> + +<!-- END TABLE CONTENTS --> + </tal:block> </tal:block> +</tal:block> +</form> +</tal:block> +</tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/eventClassStatus.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/eventClassStatus.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenEvents/skins/zenevents/eventClassStatus.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -1,11 +1,14 @@ <tal:block metal:use-macro="here/templates/macros/page2"> <tal:block metal:fill-slot="contentPane"> -<table class="zentable" cellpadding="3" cellspacing="1"> + +<tal:block tal:define=" tabletitle string:Status "> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr> - <th class="tabletitle" align="left" colspan="6">Status</th> - </tr> - <tr> <td class="tableheader" align="left">Events</td> <td class="tablevalues" align="left"> <table metal:use-macro="here/deviceStatus/macros/eventrainbow" /> @@ -15,23 +18,29 @@ <th class="tableheader" align="left">Instance Count</th> <td class="tablevalues" tal:content="here/countInstances">100</td> </tr> -</table> +<!-- END TABLE CONTENTS --> +</tal:block> +</tal:block> +</tal:block> + <span metal:use-macro="here/templates/macros/contentSeparator"/> <form method="post" tal:attributes="action here/absolute_url_path" name="subclasses"> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="objects here/children; + + +<tal:block tal:define=" objects here/children; tableName string:children; - batch python:here.ZenTableManager.getBatch(tableName,objects);"> + batch python:here.ZenTableManager.getBatch(tableName,objects); + tabletitle string:SubClasses; "> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <input type='hidden' name='tableName' tal:attributes="value tableName" /> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> - <tr> - <th class=tabletitle align=left colspan="6"> - SubClasses - </th> - </tr> <span tal:condition="objects" tal:omit-tag=""> <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( @@ -101,22 +110,32 @@ </span> </td> </tr> -</table> + +<!-- END TABLE CONTENTS --> + +</tal:block> +</tal:block> +</tal:block> + </form> <span metal:use-macro="here/templates/macros/contentSeparator"/> <form method="post" tal:attributes="action here/absolute_url_path" name="mappings"> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="objects here/instances; + + +<tal:block tal:define=" objects here/instances; tableName string:eventinstances; - batch python:here.ZenTableManager.getBatch(tableName,objects);"> + batch python:here.ZenTableManager.getBatch(tableName,objects); + tabletitle string:EventClass Mappings; "> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <input type='hidden' name='tableName' tal:attributes="value tableName" /> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> - <tr> - <th class="tabletitle" align="left" colspan="4">EventClass Mappings</th> - </tr> <span tal:condition="objects" tal:omit-tag=""> <tal:block metal:define-macro="mapbody"> <tr> @@ -183,7 +202,13 @@ onClick="toggleSelect(this.form);return false"/> </td> </tr> -</table> + +<!-- END TABLE CONTENTS --> + +</tal:block> +</tal:block> +</tal:block> + </form> </tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/eventMappingList.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/eventMappingList.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenEvents/skins/zenevents/eventMappingList.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -1,14 +1,17 @@ <tal:block metal:use-macro="here/templates/macros/page2"> <tal:block metal:fill-slot="contentPane"> <form method="post" tal:attributes="action request/URL"> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="objects here/getInstances; - tableName string:eventmappinglist; - batch python:here.ZenTableManager.getBatch(tableName,objects);"> - <tr><th class="tabletitle" colspan="4">EventClass Mappings</th></tr> - <tr><td class="tableheader" colspan="4"> - <tal:block metal:use-macro="here/zenTableNavigation/macros/navfilter"/> - </td></tr> + +<tal:block tal:define=" + objects here/getInstances; + tableName string:eventmappinglist; + batch python:here.ZenTableManager.getBatch(tableName, objects); + tblcolspan string:4; + showfilterbox python:True; + tabletitle string:EventClass Mappings;"> + +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<tal:block metal:fill-slot="zentablecontents"> <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'primarySortKey','Id')"> @@ -49,7 +52,10 @@ <tr><td class="tableheader" colspan="4"> <form metal:use-macro="here/zenTableNavigation/macros/navpagenofilter2"/> </td></tr> -</table> +</tal:block> +</tal:block> +</tal:block> + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/viewEvents.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/viewEvents.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenEvents/skins/zenevents/viewEvents.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -28,12 +28,12 @@ sortedHeader request/sortedHeader | string:; page string:getEventListPage; "> -<table class="zentable" cellpadding="3" cellspacing="1" - metal:define-macro="eventTable" - tal:define="tblcolspan string:4"> -<tr tal:define="tabletitle string:Event List"> -<tal:block metal:use-macro="here/zenuimacros/macros/tabletitle"> - <tal:block metal:fill-slot="tabletitlecontent"> +<tal:block metal:define-macro="eventTable"> +<tal:block tal:define="tabletitle string:Event List"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<!-- Custom filter widgets --> +<tal:block metal:fill-slot="filterslot"> <div style="position:absolute;right:50px;top:0px;z-index:2007;"> Sev <select class="tableheader" name="severity:int" id="severity" @@ -60,15 +60,9 @@ size='2' value='60'> <tal:block metal:use-macro="here/zenuimacros/macros/filterboxinline"/> </div> - - </tal:block> </tal:block> -</tr> -<tr> -<td tal:attributes="colspan tblcolspan" -style="padding:0px;"> -<table class="innerzentable" cellpadding="3" cellspacing="1"> +<tal:block metal:fill-slot="zentablecontents"> <tal:block metal:define-macro="header"> <input type='hidden' name='sortedHeader' @@ -126,9 +120,11 @@ </tr> </tal:block> -</table></td></tr> +</tal:block> +</tal:block> -</table> +</tal:block> +</tal:block> </form> </tal:block> </tal:block> Modified: trunk/Products/ZenEvents/skins/zenevents/viewHistoryEvents.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/viewHistoryEvents.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenEvents/skins/zenevents/viewHistoryEvents.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -50,10 +50,14 @@ sortedHeader request/sortedHeader | string:; page string:getHistoryEventListPage; "> -<table class="zentable" cellpadding="3" cellspacing="1"> -<tr tal:define="tabletitle string:Event History"> -<tal:block metal:use-macro="here/zenuimacros/macros/tabletitle"> -<tal:block metal:fill-slot="tabletitlecontent"> + + +<tal:block tal:define=" +tabletitle string:Event History; + "> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<tal:block metal:fill-slot="filterslot"> <div style="position:absolute;right:50px;top:0px;z-index:2007;"> <input type='hidden' name='table' value='history'/> Start Date: @@ -72,12 +76,10 @@ onclick="getTablePage(this.form);return false;"/> </div> </tal:block> -</tal:block> -</tr> -<tr> -<td style="padding:0px;"> -<table class="innerzentable" cellpadding="3" cellspacing="1"> +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tal:block metal:use-macro="here/viewEvents/macros/header"/> <tbody id="eventsBody"> <span metal:use-macro="here/getHistoryEventListPage/macros/page"/> @@ -111,8 +113,14 @@ </td> </tr> </tal:block> -</table> -</td></tr></table> +<!-- END TABLE CONTENTS --> + +</tal:block> +</tal:block> +</tal:block> + + + </form> </span> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/Dashboard.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/Dashboard.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenModel/skins/zenmodel/Dashboard.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -29,16 +29,13 @@ <!-- Top Left --> <td rowspan="2" width="50%" valign="top"> - -<table class="zentable" cellpadding="3" cellspacing="1"> - <thead> - -<tal:block tal:define="tblcolspan string:6"> -<tr tal:define=" tabletitle string:Systems-Level Event Summary"> -<tal:block metal:use-macro="here/zenuimacros/macros/tabletitle"/></tr><tr> -<td tal:attributes="colspan tblcolspan" style="padding:0px"> - <table class="innerzentable" cellpadding="3" cellspacing="1"> + +<!-- Begin Systems Portlet --> + +<tal:block tal:define="tabletitle string:Systems Level Event Summary"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<div metal:fill-slot="zentablecontents" tal:omit-tag=""> <tr> <th class="tableheader">System</th> <th class="tableheader">Critical</th> @@ -47,62 +44,71 @@ <th class="tableheader">Info</th> <th class="tableheader">Debug</th> </tr> - <tbody id="systemevents"> - </tbody> - </table> -</td></tr></tal:block></thead></table> +</div> +<tal:block metal:fill-slot="zentableextra"> + <tbody id="systemevents"></tbody> +</tal:block> +</tal:block> +</tal:block> +<!-- End Systems Portlet --> + </td> <td valign="top"> -<table class="zentable" cellpadding="3" cellspacing="1"> - <thead> - -<tal:block tal:define="tblcolspan string:4"> -<tr -tal:define=" +<!-- Begin Devices Portlet --> + +<tal:block tal:define=" tabletitle string:Devices with Events (Severity >= Error)"> -<tal:block metal:use-macro="here/zenuimacros/macros/tabletitle"/></tr><tr><td tal:attributes="colspan tblcolspan" style="padding:0px"> <table class="innerzentable" cellpadding="3" cellspacing="1"> - +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<div metal:fill-slot="zentablecontents" tal:omit-tag=""> <tr> <th class="tableheader">Name</th> <th class="tableheader">Acked By</th> <th class="tableheader">Critical</th> <th class="tableheader">Error</th> </tr> +</div> +<tal:block metal:fill-slot="zentableextra"> <tbody id="deviceevents"> </tbody> - </table> -</td></tr></tal:block></thead></table> +</tal:block> +</tal:block> +</tal:block> +<!-- End Devices Portlet --> + </td> </tr> <tr> <td valign="bottom"> -<table class="zentable" cellpadding="3" cellspacing="1"> - <thead> - <tal:block tal:define="tblcolspan string:6"> - <tr tal:define=" tabletitle string:Zenoss Infrastructure Issues"> - <tal:block metal:use-macro="here/zenuimacros/macros/tabletitle"/> - </tr> - <tr> - <td tal:attributes="colspan tblcolspan" style="padding:0px"> - <table class="innerzentable" cellpadding="3" cellspacing="1"> - <tr> - <th class="tableheader">Device</th> - <th class="tableheader">Component</th> - <th class="tableheader">Seconds</th> - </tr> - <tbody id="heartbeat"> - </tbody> - </table> +<tal:block tal:define="tabletitle string:Zenoss Infrastructure Issues"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> - </td> - </tr> - </tal:block> -</thead></table></td></tr> +<div metal:fill-slot="zentablecontents"> +<!-- BEGIN TABLE CONTENTS --> + <tr> + <th class="tableheader">Device</th> + <th class="tableheader">Component</th> + <th class="tableheader">Seconds</th> + </tr> +</div> +<!-- END TABLE CONTENTS --> + +<tal:block metal:fill-slot="zentableextra"> + <tbody id="heartbeat"> + </tbody> +</tal:block> + +</tal:block> +</tal:block> + + + +</td></tr> + </table> </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/addDevice.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/addDevice.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenModel/skins/zenmodel/addDevice.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -20,9 +20,14 @@ <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> - <table class="zentable" cellpadding="3" cellspacing="1" - tal:define="device python: here.meta_type != 'DeviceLoader' - and here or None" > + +<tal:block tal:define="device python: here.meta_type != 'DeviceLoader' + and here or None; + tabletitle string:Load Device" > +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr> <td class="tableheader" align="left">Device Name</td> <td class="tablevalues" align="left"> @@ -59,7 +64,7 @@ </td> </tr> <span metal:define-macro="body" tal:omit-tag=""> - <tr><th class=tabletitle colspan=4 align="left">Attributes</th></tr> + <tr><th class="subtabletitle" colspan=4 align="left">Attributes</th></tr> <tr> <td class="tableheader" align="left">Snmp Community</td> <td class="tablevalues" align="left"> @@ -145,7 +150,7 @@ </textarea> </td> </tr> - <tr><th class=tabletitle colspan=4 align="left">Relations</th></tr> + <tr><th class="subtabletitle" colspan=4 align="left">Relations</th></tr> <tr> <td class="tableheader" align="left">HW Manufacturer</td> <td class="tablevalues" align="left"> @@ -372,7 +377,13 @@ name="loadDevice:method" value=" Add Device "/> </td> </tr> - </table> + +<!-- END TABLE CONTENTS --> + +</tal:block> +</tal:block> +</tal:block> + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/deviceHardwareDetail.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceHardwareDetail.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenModel/skins/zenmodel/deviceHardwareDetail.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -1,29 +1,36 @@ <tal:block metal:use-macro="here/templates/macros/page2"> <tal:block metal:fill-slot="contentPane"> -<table class="zentable" cellpadding="3" cellspacing="1"> + +<tal:block tal:define=" tabletitle string:Memory; "> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr> - <th class="tabletitle" colspan="4"> - Memory - </th> - </tr> - <tr> <td class="tableheader">Memory</td> <td class="tablevalues" tal:content="here/hw/totalMemoryString"/> <td class="tableheader">Swap</td> <td class="tablevalues" tal:content="here/os/totalSwapString"/> </tr> -</table> -<table class="zentable" cellpadding="3" cellspacing="1" - metal:define-macro="cpuList" + +<!-- END TABLE CONTENTS --> + +</tal:block> +</tal:block> +</tal:block> + + +<tal:block metal:define-macro="cpuList" tal:define="tableName string:cpuList; objects here/hw/cpus/objectValuesAll; + tabletitle string:CPUs; batch python:here.ZenTableManager.getBatch(tableName,objects)"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr> - <th class="tabletitle" align="left" colspan="8"> - CPUs - </th> - </tr> - <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'socket','Socket')"/> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( @@ -60,19 +67,25 @@ <form metal:use-macro="here/zenTableNavigation/macros/navtool"></form> </td> </tr> -</table> +<!-- END TABLE CONTENTS --> -<table class="zentable" cellpadding="3" cellspacing="1" - metal:define-macro="hardDiskList" +</tal:block> +</tal:block> +</tal:block> + + +<tal:block metal:define-macro="hardDiskList" tal:define="tableName string:hardDiskList; objects here/hw/harddisks/objectValuesAll; + tabletitle string:Hard Disks; batch python:here.ZenTableManager.getBatch(tableName,objects, sortedHeader='description');" tal:condition="objects"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr> - <th class="tabletitle" colspan="2">Hard Disks</th> - </tr> - <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'description','Name')"/> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( @@ -93,19 +106,26 @@ <form metal:use-macro="here/zenTableNavigation/macros/navtool"></form> </td> </tr> -</table> -<table class="zentable" cellpadding="3" cellspacing="1" +<!-- END TABLE CONTENTS --> + +</tal:block> +</tal:block> +</tal:block> + +<tal:block metal:define-macro="cardList" tal:define="tableName string:hardDiskList; objects here/hw/cards/objectValuesAll; + tabletitle string:Expansion Cards; batch python:here.ZenTableManager.getBatch(tableName,objects, sortedHeader='slot');" tal:condition="objects"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr> - <th class="tabletitle" align="left" colspan="3">Expansion Cards</th> - </tr> - <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'slot','Slot')"/> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( @@ -127,7 +147,12 @@ <form metal:use-macro="here/zenTableNavigation/macros/navtool"></form> </td> </tr> -</table> +<!-- END TABLE CONTENTS --> + </tal:block> </tal:block> +</tal:block> +</tal:block> +</tal:block> + Modified: trunk/Products/ZenModel/skins/zenmodel/deviceList.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceList.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenModel/skins/zenmodel/deviceList.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -12,18 +12,14 @@ > <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> <input type="hidden" name="tableName" tal:attributes="value tableName"/> -<table class="zentable"> - - <tr tal:define="tabletitle string:Device List; - showfilterbox python:True; - menu_id string:Device"> - <tal:block metal:use-macro="here/zenuimacros/macros/tabletitle"/> - </tr> +<tal:block tal:define="tabletitle string:Device List; + showfilterbox python:True; + menu_id string:Device"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<tal:block metal:fill-slot="zentablecontents"> -<tr> -<td tal:attributes="colspan tblcolspan" -style="padding:0px;"><table class="innerzentable" -cellpadding="3" cellspacing="1"> +<!-- BEGIN TABLE CONTENTS --> + <span metal:use-macro="here/deviceListMacro/macros/devListBody"/> <tr> <td colspan="5" class="tableheader" align='center'> @@ -35,8 +31,12 @@ <tal:block metal:use-macro="here/deviceListMacro/macros/deviceControl"/> </tal:block> -</table></td></tr> -</table> +<!-- END TABLE CONTENTS --> + +</tal:block> +</tal:block> +</tal:block> + </form> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/deviceManagement.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceManagement.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenModel/skins/zenmodel/deviceManagement.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -8,20 +8,17 @@ <tal:block metal:fill-slot="contentPane"> <form action="_" method="post" tal:attributes="action here/REQUEST/URL1"> + <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" border=0 cellpadding=3 cellspacing=1> - -<tal:block tal:define="tblcolspan string:2"> -<tr -tal:define=" -tabletitle string:Device Management"> -<tal:block metal:use-macro="here/zenuimacros/macros/tabletitle"/></tr><tr><td tal:attributes="colspan tblcolspan" style="padding:0px"> <table class="innerzentable" cellpadding="3" cellspacing="1"> +<tal:block tal:define="tabletitle string:Device Management;"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<tal:block metal:fill-slot="zentablecontents"> - <tal:block metal:use-macro="here/userCommandsMacros/macros/runCommand" /> - +<!-- BEGIN TABLE CONTENTS --> + <tal:block metal:use-macro="here/userCommandsMacros/macros/runCommand" /> <tr> <td class="tableheader" align="left">Device Class Path</td> <td class="tableheader" align="left" colspan=3> @@ -87,9 +84,12 @@ value=" Delete Device " /> </td> </tr> - </table> -</td></tr></tal:block></table> +<!-- END TABLE CONTENTS --> +</tal:block> +</tal:block> +</tal:block> + </form> <span metal:use-macro="here/templates/macros/contentSeparator"/> @@ -105,19 +105,29 @@ metal:define-macro="adminRolesTable"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="objects here/adminRoles/objectValuesAll; + +<tal:block tal:define=" + objects here/adminRoles/objectValuesAll; editable here/isManager; tableName string:deviceadminroles; - batch python:here.ZenTableManager.getBatch(tableName,objects);"> + tabletitle string:Administrators; + batch python:here.ZenTableManager.getBatch(tableName,objects); "> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<!--==================== +Optional titlebar stuff + +<tal:block metal:fill-slot="menuslot"> +</tal:block> +<tal:block metal:fill-slot="filterslot"> +</tal:block> + + ====================--> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <input type='hidden' name='tableName' tal:attributes="value tableName" /> - -<tal:block tal:define="tblcolspan string:5"> -<tr -tal:define=" -tabletitle string:Administrators"> -<tal:block metal:use-macro="here/zenuimacros/macros/tabletitle"/></tr><tr><td tal:attributes="colspan tblcolspan" style="padding:0px"> <table class="innerzentable" cellpadding="3" cellspacing="1"> - <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'primarySortKey','Name')"/> @@ -184,25 +194,27 @@ onClick="toggleSelect(this.form);return false"/> </td> </tr> -</table> -</td></tr></tal:block></table> +<!-- END TABLE CONTENTS --> + +</tal:block> +</tal:block> +</tal:block> + </form> <span metal:use-macro="here/templates/macros/contentSeparator"/> -<table class="zentable" cellpadding="3" cellspacing="1" - metal:define-macro="graphLinks" tal:condition="here/havePydot" - tal:define=" - routers string:${here/absolute_url_path}/deviceGraphRouters; - networks string:${here/absolute_url_path}/deviceGraphNets"> - -<tal:block tal:define="tblcolspan string:4"> -<tr -tal:define=" -tabletitle string:Graphs"> -<tal:block metal:use-macro="here/zenuimacros/macros/tabletitle"/></tr><tr><td tal:attributes="colspan tblcolspan" style="padding:0px"> <table class="innerzentable" cellpadding="3" cellspacing="1"> +<tal:block metal:define-macro="graphLinks" tal:condition="here/havePydot" + tal:define="routers string:${here/absolute_url_path}/deviceGraphRouters; + tabletitle string:Graphs; + networks string:${here/absolute_url_path}/deviceGraphNets"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr> <td class="tableheader">Relative Network Graph</td> <td class="tablevalues" colspan="3"><a tal:attributes="href @@ -213,9 +225,11 @@ <td class="tablevalues" colspan="3"><a tal:attributes="href networks">Image Link</a> (routers and networks)</td> </tr> -</table> -</td></tr></tal:block></table> +<!-- END TABLE CONTENTS --> +</tal:block> +</tal:block> +</tal:block> </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/deviceOrganizerManage.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceOrganizerManage.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenModel/skins/zenmodel/deviceOrganizerManage.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -6,13 +6,26 @@ <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" border=0 cellpadding=3 cellspacing=1> - -<tal:block tal:define="tblcolspan string:5"> -<tr tal:define=" tabletitle string:Device Management"> -<tal:block metal:use-macro="here/zenuimacros/macros/tabletitle"/></tr><tr><td tal:attributes="colspan tblcolspan" style="padding:0px"> <table class="innerzentable" cellpadding="3" cellspacing="1"> - +<tal:block tal:define=" +tabletitle string:Device Management + "> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<!--==================== +Optional titlebar stuff + +<tal:block metal:fill-slot="menuslot"> +</tal:block> +<tal:block metal:fill-slot="filterslot"> +</tal:block> + + ====================--> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> + <span metal:use-macro="here/userCommandsMacros/macros/runCommand" /> <tr> @@ -35,10 +48,14 @@ value="Change" /> </td> </tr> - </table> -</td></tr></tal:block></table> +<!-- END TABLE CONTENTS --> +</tal:block> +</tal:block> +</tal:block> + </form> + <br/> <span metal:use-macro="here/userCommandsMacros/macros/userCommandsTable" /> Modified: trunk/Products/ZenModel/skins/zenmodel/deviceOrganizerStatus.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceOrganizerStatus.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenModel/skins/zenmodel/deviceOrganizerStatus.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -8,38 +8,18 @@ <tal:block metal:use-macro="here/templates/macros/page2"> <tal:block metal:fill-slot="contentPane"> <!-- Status Table --> -<script language="javascript"> -function toggleElement(elementid) { - var element = $(elementid); - if (element.visible == 0) { - element.style.display = "none"; - element.visible = 1; - } else { - element.style.display = ""; - element.visible = 0; - } -} -</script> <form method="post" tal:attributes="action here/absolute_url_path" name="deviceOrganizerStatus"> <input type="hidden" name="zenScreenName" value="deviceOrganizerStatus" /> -<table class="zentable" - tal:define=" +<tal:block metal:define-macro="status"> +<tal:block tal:define=" tabletitle string:Summary; - tblcolspan string:6;" - metal:define-macro="status"> - <tr tal:define=" - tabletitle string:Summary; tblcolspan string:6;"> - <tal:block metal:use-macro="here/zenuimacros/macros/tabletitle"/> - </tr> - <tr> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<tal:block metal:fill-slot="zentablecontents"> -<td tal:attributes="colspan tblcolspan" style="padding:0px;"> -<table class="innerzentable" cellpadding="3" cellspacing="1"> +<!-- BEGIN TABLE CONTENTS --> <tr> - - <td class="tableheader" align="left">Events</td> <td class="tablevalues rainbow" align="left"> <table metal:use-macro="here/deviceStatus/macros/eventrainbow" /> @@ -82,32 +62,31 @@ </td> </tr> </tbody> +<!-- END TABLE CONTENTS --> -</table></td></tr> +</tal:block> +</tal:block> +</tal:block> +</tal:block> - </table> + </form> <span metal:use-macro="here/templates/macros/contentSeparator"/> <!-- Sub-Devices Table --> <form method="post" tal:attributes="action here/absolute_url_path" name="subdeviceForm"> - <table class="zentable" - name="subdeviceTable" - tal:define="objects here/children; + <tal:block tal:define="objects here/children; tableName string:children; tblcolspan string:5; - batch python:here.ZenTableManager.getBatch(tableName,objects);"> + batch python:here.ZenTableManager.getBatch(tableName,objects); + showfilterbox python:True; + tblcolspan string:5; + tabletitle string:Sub-${here/dmdRootName}"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<tal:block metal:fill-slot="zentablecontents"> <input type='hidden' name='tableName' tal:attributes="value tableName"/> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> - <tr tal:define="showfilterbox python:True; - tblcolspan string:5; - tabletitle string:Sub-${here/dmdRootName}"> - <tal:block metal:use-macro="here/zenuimacros/macros/tabletitle"/> - </tr> - <tr> -<td tal:attributes="colspan tblcolspan" style="padding:0px;"> -<table class="innerzentable" cellpadding="3" cellspacing="1"> <span tal:condition="objects" tal:omit-tag=""> <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( @@ -189,8 +168,9 @@ </td> </tr> -</table></td></tr> - </table> +</tal:block> +</tal:block> +</tal:block> </form> <br tal:condition="here/devices/countObjects"> Modified: trunk/Products/ZenModel/skins/zenmodel/deviceOsDetail.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceOsDetail.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenModel/skins/zenmodel/deviceOsDetail.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -1,16 +1,19 @@ <tal:block metal:use-macro="here/templates/macros/page2"> <tal:block metal:fill-slot="contentPane"> -<tal:block tal:define="unused here/cacheComponents"> -<table class="zentable" cellpadding="3" cellspacing="1" - metal:define-macro="interfaceList" - tal:define="tableName string:interfacelist; - objects here/os/interfaces/objectValuesAll; - batch python:here.ZenTableManager.getBatch(tableName,objects);"> - <tr> - <th class="tabletitle" align="left" colspan="10"> - Interfaces - </th> - </tr> + + +<tal:block tal:define="unused here/cacheComponents; + tableName string:interfacelist; + objects here/os/interfaces/objectValuesAll; + tabletitle string:Interfaces; + batch python:here.ZenTableManager.getBatch(tableName,objects);" + metal:define-macro="interfaceList"> + +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr tal:condition="batch"> <th class="tableheader" align="center">O</th> <th class="tableheader" align="center">A</th> @@ -79,20 +82,24 @@ <form metal:use-macro="here/zenTableNavigation/macros/navtool"></form> </td> </tr> -</table> +<!-- END TABLE CONTENTS --> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:condition="here/os/winservices/countObjects" +</tal:block> +</tal:block> +</tal:block> + +<tal:block tal:condition="here/os/winservices/countObjects" tal:define="tableName string:winserviceslist; objects here/os/winservices/objectValuesAll; + tabletitle string:Win Services; batch python:here.ZenTableManager.getBatch(tableName,objects, sortedHeader='caption');"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr> - <th class="tabletitle" colspan="5"> - Win Services - </th> - </tr> - <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'caption','Caption')"/> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( @@ -124,20 +131,37 @@ <form metal:use-macro="here/zenTableNavigation/macros/navtool"/> </td> </tr> -</table> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="tableName string:osprocesslist; +<!-- END TABLE CONTENTS --> + +</tal:block> +</tal:block> +</tal:block> + + +<tal:block tal:define="tableName string:osprocesslist; objects here/os/processes/objectValuesAll; + tabletitle string:OS Processes; batch python:here.ZenTableManager.getBatch(tableName,objects, sortedHeader='getOSProcessClass');" tal:condition="objects"> + +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<!--==================== +Optional titlebar stuff + +<tal:block metal:fill-slot="menuslot"> +</tal:block> +<tal:block metal:fill-slot="filterslot"> +</tal:block> + + ====================--> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr> - <th class="tabletitle" align="left" colspan="6"> - OS Processes - </th> - </tr> - <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'getOSProcessClass','Class')"/> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( @@ -165,24 +189,31 @@ </tal:block> <tr> <td colspan="6" class="tableheader" align='center'> - <form metal:use-macro="here/zenTableNavigation/macros/navtool"></form> + <form metal:use-macro="here/zenTableNavigation/macros/navtool"> + </form> </td> </tr> -</table> -<table class="zentable" cellpadding="3" cellspacing="1" - metal:define-macro="ipserviceList" +<!-- END TABLE CONTENTS --> + +</tal:block> +</tal:block> +</tal:block> + + +<tal:block metal:define-macro="ipserviceList" tal:define="tableName string:ipservicelist; objects here/os/ipservices/objectValuesAll; + tabletitle string:IP Services; batch python:here.ZenTableManager.getBatch(tableName,objects, sortedHeader='getPort');" tal:condition="objects"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr> - <th class="tabletitle" align="left" colspan="6"> - IP Services - </th> - </tr> - <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'getKeyword','Name')">Name </th> @@ -226,20 +257,25 @@ <form metal:use-macro="here/zenTableNavigation/macros/navtool"></form> </td> </tr> -</table> +<!-- END TABLE CONTENTS --> -<table class="zentable" cellpadding="3" cellspacing="1" - metal:define-macro="fileSysList" +</tal:block> +</tal:block> +</tal:block> + + +<tal:block metal:define-macro="fileSysList" tal:define="tableName string:fileSyslist; objects here/os/filesystems/objectValuesAll; + tabletitle string:File Systems; batch python:here.ZenTableManager.getBatch(tableName,objects, sortedHeader='mount');" tal:condition="objects"> - <tr> - <th class="tabletitle" align="left" colspan="5"> - File Systems - </th> - </tr> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr tal:condition="objects"> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'mount','Mount')">Mount @@ -296,21 +332,26 @@ <tr> <td colspan="5" class="tableheader" align='center' tal:define="useOnlyMonitored python:1"> - <form metal:use-macro="here/zenTableNavigation/macros/navtool"></form> + <form metal:use-macro="here/zenTableNavigation/macros/navtool"> + </form> </td> </tr> -</table> -<table class="zentable" cellpadding="3" cellspacing="1" - metal:define-macro="routeTableList" +<!-- END TABLE CONTENTS --> + +</tal:block> +</tal:block> +</tal:block> + +<tal:block metal:define-macro="routeTableList" tal:define="tableName string:routeTablelist; objects here/os/routes/objectValuesAll; + tabletitle string:Routes; batch python:here.ZenTableManager.getBatch(tableName,objects);"> - <tr> - <th class="tabletitle" align="left" colspan="5"> - Routes - </th> - </tr> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr tal:condition="batch"> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'primarySortKey','Destination')"/> @@ -343,11 +384,17 @@ </tal:block> <tr> <td colspan="5" class="tableheader" align='center'> - <form metal:use-macro="here/zenTableNavigation/macros/navtool"></form> + <form metal:use-macro="here/zenTableNavigation/macros/navtool"> + </form> </td> </tr> -</table> + +<!-- END TABLE CONTENTS --> + </tal:block> </tal:block> </tal:block> +</tal:block> +</tal:block> + Modified: trunk/Products/ZenModel/skins/zenmodel/deviceSoftwareDetail.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceSoftwareDetail.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenModel/skins/zenmodel/deviceSoftwareDetail.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -1,16 +1,16 @@ <tal:block metal:use-macro="here/templates/macros/page2"> <tal:block metal:fill-slot="contentPane"> -<table class="zentable" cellpadding="3" cellspacing="1" - metal:define-macro="softwareList" + +<tal:block metal:define-macro="softwareList" tal:define="tableName string:softwareList; objects here/os/software/objectValuesAll; + tabletitle string:Installed Software; batch python:here.ZenTableManager.getBatch(tableName,objects)"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr> - <th class="tabletitle" align="left" colspan="5"> - Installed Software - </th> - </tr> - <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'getManufacturerName','Manufacturer')"/> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( @@ -31,6 +31,11 @@ <form metal:use-macro="here/zenTableNavigation/macros/navtool"></form> </td> </tr> -</table> +<!-- END TABLE CONTENTS --> + </tal:block> </tal:block> +</tal:block> + +</tal:block> +</tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/deviceStatus.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceStatus.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenModel/skins/zenmodel/deviceStatus.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -1,8 +1,16 @@ <tal:block metal:use-macro="here/templates/macros/page2"> <tal:block metal:fill-slot="contentPane"> + + +<tal:block metal:define-macro="deviceStatusInfo" + tal:define=" tabletitle string:Status; "> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> -<table class="zentable" cellpadding="3" cellspacing="1" - metal:define-macro="deviceStatusInfo"> <tr> <td tal:define="tabletitle python:here.lockStatus(); menu_id string:Lockable"> @@ -14,9 +22,6 @@ </td> </tr> <tr> - <th class="tabletitle" colspan=4>Status</th> - </tr> - <tr> <td class="tableheader">Events</td> <td class="tablevalues rainbow"> <table width='100%' @@ -75,16 +80,22 @@ Do not send event on block </td> </tr> -</table> +<!-- END TABLE CONTENTS --> +</tal:block> +</tal:block> +</tal:block> + <span metal:use-macro="here/templates/macros/contentSeparator"/> -<table class="zentable" cellpadding="3" cellspacing="1" + +<tal:block tal:define=" tabletitle string:Device; " metal:define-macro="deviceOverview"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr> - <th class="tabletitle" colspan=4>Device</th> - </tr> - <tr> <th class="tableheader">SNMP sysName</th> <td class="tablevalues" tal:content="here/snmpSysName"/> <th class="tableheader">Manage IP</th> @@ -141,16 +152,21 @@ <td class="tableheader">Links</td> <td class="tablevalues" colspan="3" tal:content="structure here/getExpandedLinks" /> </tr> -</table> +<!-- END TABLE CONTENTS --> +</tal:block> +</tal:block> +</tal:block> + <span metal:use-macro="here/templates/macros/contentSeparator"/> -<table class="zentable" cellpadding="3" cellspacing="1" + +<tal:block tal:define="tabletitle string:Related Organizers" metal:define-macro="deviceLinks"> - <tr> - <th class="tabletitle" colspan="4"> - Related Organizers - </th> - </tr> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr tal:condition="python: hasattr(here, 'termserver') and here.termserver()"> <th class="tableheader">Terminal Server</th> @@ -233,6 +249,12 @@ </span> </td> </tr> -</table> + +<!-- END TABLE CONTENTS --> + </tal:block> </tal:block> +</tal:block> + +</tal:block> +</tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/editCustSchema.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editCustSchema.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenModel/skins/zenmodel/editCustSchema.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -5,15 +5,24 @@ tal:attributes="action string:${request/URL1}"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="props here/custPropertyMap"> - -<tal:block tal:define="tblcolspan string:5"> -<tr -tal:define=" -tabletitle string:Custom Properties"> -<tal:block metal:use-macro="here/zenuimacros/macros/tabletitle"/></tr><tr><td tal:attributes="colspan tblcolspan" style="padding:0px"> <table class="innerzentable" cellpadding="3" cellspacing="1"> +<tal:block tal:define=" props here/custPropertyMap; +tabletitle string:Custom Properties; "> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<!--==================== +Optional titlebar stuff + +<tal:block metal:fill-slot="menuslot"> +</tal:block> +<tal:block metal:fill-slot="filterslot"> +</tal:block> + + ====================--> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr> <th class="tableheader">Property</th> <th class="tableheader">Label</th> @@ -74,23 +83,36 @@ </td> </tr> -</table> -</td></tr></tal:block></table> +<!-- END TABLE CONTENTS --> +</tal:block> +</tal:block> +</tal:block> + </form> + <br/> -<form method="post" -tal:attributes="action here/getPrimaryUrlPath"> + +<form method="post" tal:attributes="action here/getPrimaryUrlPath"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> -<table class="zentable" cellpadding="3" cellspacing="1"> -<tal:block tal:define="tblcolspan string:2"> -<tr -tal:define=" -tabletitle string:Add Property"> -<tal:block metal:use-macro="here/zenuimacros/macros/tabletitle"/></tr><tr><td tal:attributes="colspan tblcolspan" style="padding:0px"> <table class="innerzentable" cellpadding="3" cellspacing="1"> +<tal:block tal:define=" tabletitle string:Add Property; "> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<!--==================== +Optional titlebar stuff + +<tal:block metal:fill-slot="menuslot"> +</tal:block> +<tal:block metal:fill-slot="filterslot"> +</tal:block> + + ====================--> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <tr> <td class="tableheader">Label</td> <td class="tablevalues"> @@ -135,9 +157,12 @@ value=" Add " /> </td> </tr> -</table> -</td></tr></tal:block></table> +<!-- END TABLE CONTENTS --> +</tal:block> +</tal:block> +</tal:block> + </form> </tal:block> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/editDevice.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editDevice.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenModel/skins/zenmodel/editDevice.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -10,14 +10,20 @@ <input type="hidden" name="zenScreenName" tal:attributes="value template/id" /> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="device python: here.meta_type != 'DeviceLoader' - and here or None" - > - <tr tal:define="message request/message | string:Device State at time:"> - <td class=tableheader colspan=4 - tal:content="string:${message} ${here/getNowString}" /> - </tr> + +<tal:block tal:define="device python: here.meta_type != 'DeviceLoader' + and here or None; + tabletitle string:Edit Device; + message request/message | string:Device State at time:"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<tal:block metal:fill-slot="filterslot"> + <span tal:content="string:${message} ${here/getNowString}" + style="margin-left:20px;"/> +</tal:block> +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <span metal:use-macro="here/addDevice/macros/body" /> <tr> <td class=tableheader align="left" > @@ -27,7 +33,11 @@ name="manage_editDevice:method" /> </td> </tr> -</table> +<!-- END TABLE CONTENTS --> + +</tal:block> +</tal:block> +</tal:block> </form> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/maintenanceWindowsMacro.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/maintenanceWindowsMacro.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenModel/skins/zenmodel/maintenanceWindowsMacro.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -2,18 +2,28 @@ metal:define-macro="maintenanceWindows"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="objects here/maintenanceWindows/objectValuesAll; + +<tal:block tal:define=" + objects here/maintenanceWindows/objectValuesAll; tableName string:devicemaintenancewindow; - batch python:here.ZenTableManager.getBatch(tableName,objects);"> - <input type='hidden' name='tableName' tal:attributes="value tableName" /> - -<tal:block tal:define="tblcolspan string:7"> -<tr -tal:define=" -tabletitle string:Maintenance Windows"> -<tal:block metal:use-macro="here/zenuimacros/macros/tabletitle"/></tr><tr><td tal:attributes="colspan tblcolspan" style="padding:0px"> <table class="innerzentable" cellpadding="3" cellspacing="1"> + batch python:here.ZenTableManager.getBatch(tableName,objects); + tabletitle string:Maintenance Windows;"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<!--==================== +Optional titlebar stuff + +<tal:block metal:fill-slot="menuslot"> +</tal:block> +<tal:block metal:fill-slot="filterslot"> +</tal:block> + + ====================--> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> +<input type='hidden' name='tableName' tal:attributes="value tableName" /> <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'primarySortKey','Name','cmp')"> @@ -82,7 +92,10 @@ onClick="toggleSelect(this.form);return false"/> </td> </tr> -</table> -</td></tr></tal:block></table> +<!-- END TABLE CONTENTS --> +</tal:block> +</tal:block> +</tal:block> + </form> Modified: trunk/Products/ZenModel/skins/zenmodel/mibOrganizerOverview.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/mibOrganizerOverview.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenModel/skins/zenmodel/mibOrganizerOverview.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -2,18 +2,28 @@ <tal:block metal:fill-slot="contentPane"> <form method="post" tal:attributes="action here/absolute_url_path"> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="objects here/children; +<tal:block tal:define="objects here/children; tableName string:children; + tabletitle string:Sub-Folders; batch python:here.ZenTableManager.getBatch(tableName,objects);"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<!--==================== +Optional titlebar stuff + +<tal:block metal:fill-slot="menuslot"> +</tal:block> +<tal:block metal:fill-slot="filterslot"> +</tal:block> + + ====================--> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> <input type='hidden' name='tableName' tal:attributes="value tableName" /> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> - <tr> - <th class=tabletitle align=left colspan="6"> - Sub-Folders - </th> - </tr> <span tal:condition="objects" tal:omit-tag=""> <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( @@ -70,22 +80,39 @@ </span> </td> </tr> -</table> + +<!-- END TABLE CONTENTS --> + +</tal:block> +</tal:block> +</tal:block> </form> <span metal:use-macro="here/templates/macros/contentSeparator"/> <form method="post" tal:attributes="action here/absolute_url_path"> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="objects here/mibs; +<tal:block tal:define="objects here/mibs; tableName string:mibslist; + tabletitle string:Mibs; batch python:here.ZenTableManager.getBatch(tableName,objects);"> - <input type='hidden' name='tableName' tal:attributes="value tableName" /> - <input type="hidden" name="zenScreenName" - tal:attributes="value template/id"/> - <tr> - <th class="tabletitle" align="left" colspan="5">Mibs</th> - </tr> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> + +<!--==================== +Optional titlebar stuff + +<tal:block metal:fill-slot="menuslot"> +</tal:block> +<tal:block metal:fill-slot="filterslot"> +</tal:block> + + ====================--> + +<tal:block metal:fill-slot="zentablecontents"> + +<!-- BEGIN TABLE CONTENTS --> +<input type='hidden' name='tableName' tal:attributes="value tableName" /> +<input type="hidden" name="zenScreenName" + tal:attributes="value template/id"/> <span tal:condition="objects" tal:omit-tag=""> <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( @@ -134,7 +161,12 @@ onClick="toggleSelect(this.form);return false"/> </td> </tr> -</table> + +<!-- END TABLE CONTENTS --> + +</tal:block> +</tal:block> +</tal:block> </form> </tal:block> Modified: trunk/Products/ZenModel/skins/zenmodel/objRRDTemplate.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/objRRDTemplate.pt 2007-03-09 21:21:54 UTC (rev 4256) +++ trunk/Products/ZenModel/skins/zenmodel/objRRDTemplate.pt 2007-03-12 12:44:39 UTC (rev 4257) @@ -4,6 +4,7 @@ editable python:templ.isEditable(here)"> <form method="post" tal:attributes="action here/absolute_url_path"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> + <table class="zentable" cellpadding="3" cellspacing="1"> <tr class="tableheader"> <td> @@ -25,37 +26,64 @@ </table> </form> <br/> + + + <form method="post" tal:attributes="action templ/absolute_url_path"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="tableName string:rrdtempdslist; +<tal:block tal:define="tableName string:rrdtempdslist; objects templ/getRRDDataSources; + tabletitle string:Data Sources; batch python:here.ZenTableManager.getBatch(tableName,objects)"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<tal:block metal:fill-slot="zentablecontents"> +<!-- BEGIN TABLE CONTENTS --> <input type='hidden' name='tableName' tal:attributes="value tableName" /> <tal:block metal:use-macro="here/viewRRDTemplate/macros/dsbody"/> -</table> +<!-- END TABLE CONTENTS --> +</tal:block> +</tal:block> +</tal:block> </form> + <br/> + <form method="post" tal:attributes="action templ/absolute_url_path"> <input type="hidden" name="zenScreenName" tal:attributes="value template/id"/> -<table class="zentable" cellpadding="3" cellspacing="1" - tal:define="tableName string:rrdthreshsoldist; +<tal:block tal:define="tableName string:rrdthresholdlist; objects templ/thresholds; + tabletitle string:Thresholds; batch python:here.ZenTableManager.getBatch(tableName,objects)"> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<tal:block metal:fill-slot="zentablecontents"> +<!-- BEGIN TABLE CONTENTS --> <input type='hidden' name='tableName' tal:attributes="value tableName" /> <tal:block metal:use-m... [truncated message content] |
From: <sv...@ze...> - 2007-03-09 21:21:58
|
Author: marc Date: 2007-03-09 15:21:54 -0600 (Fri, 09 Mar 2007) New Revision: 4256 Modified: trunk/Products/ZenRRD/RenderServer.py Log: #827 * Methods to package and unpackage rrd files * Methods to move and receive packages Modified: trunk/Products/ZenRRD/RenderServer.py =================================================================== --- trunk/Products/ZenRRD/RenderServer.py 2007-03-09 21:19:18 UTC (rev 4255) +++ trunk/Products/ZenRRD/RenderServer.py 2007-03-09 21:21:54 UTC (rev 4256) @@ -34,6 +34,7 @@ from Products.ZenModel.PerformanceConf import performancePath import glob +import tarfile import utils @@ -122,6 +123,47 @@ if remoteUrl: urllib.urlopen(remoteUrl) + def packageRRDFiles(self, device, REQUEST=None): + srcdir = performancePath('/Devices/%s' % device) + tarfilename = '%s/%s.tgz' % (self.tmpdir, device) + tar = tarfile.open(tarfilename, "w:gz") + for file in os.listdir(srcdir): + tar.add('%s/%s' % (srcdir, file), '/%s' % os.path.basename(file)) + tar.close() + + def unpackageRRDFiles(self, device, REQUEST=None): + destdir = performancePath('/Devices/%s' % device) + tarfilename = '%s/%s.tgz' % (self.tmpdir, device) + tar = tarfile.open(tarfilename, "r:gz") + for file in tar.getmembers(): + tar.extract(file, destdir) + tar.close() + + def moveRRDFiles(self, device, user, passwd, server, REQUEST=None): + tarfilename = '%s/%s.tgz' % (self.tmpdir, device) + f=open(tarfilename) + tarfilebody=f.read() + f.close() + # urlencode the id, title and file + params = urllib.urlencode({'id': tarfilename, + 'title':tarfilename, + 'file':tarfilebody}) + # send the file to zope + remoteUrl = '%s:%s@%s/zport/RenderServer/receiveRRDFiles' % (user, passwd, server) + f=urllib.urlopen(remoteUrl, params) + + def receiveRRDFiles(self, id, title, file, REQUEST=None): + tarfilename = '%s/%s' % (self.tmpdir, id) + f=open(tarfilename, 'w') + f.write(file) + f.close() + + def sendRRDFiles(self, device, user, passwd, server, REQUEST=None): + self.packageRRDFiles(device, REQUEST) + self.moveRRDFiles(device, user, passwd, server, REQUEST) + remoteUrl = '%s:%s@%s/zport/RenderServer/unpackageRRDFiles?device=%s' % (user, passwd, server, device) + urllib.urlopen(remoteUrl).read() + security.declareProtected('View', 'plugin') def plugin(self, name, REQUEST=None): "render a custom graph and return it" |
From: <sv...@ze...> - 2007-03-09 21:19:22
|
Author: marc Date: 2007-03-09 15:19:18 -0600 (Fri, 09 Mar 2007) New Revision: 4255 Modified: trunk/Products/ZenModel/Lockable.py trunk/Products/ZenModel/migrate/menus.py trunk/Products/ZenModel/skins/zenmodel/deviceStatus.pt Log: #748 Modified: trunk/Products/ZenModel/Lockable.py =================================================================== --- trunk/Products/ZenModel/Lockable.py 2007-03-09 18:36:40 UTC (rev 4254) +++ trunk/Products/ZenModel/Lockable.py 2007-03-09 21:19:18 UTC (rev 4255) @@ -48,6 +48,12 @@ else: return False + def setSendEventWhenBlockedFlag(self): + self.sendEventWhenBlockedFlag = True + + def unsetSendEventWhenBlockedFlag(self): + self.sendEventWhenBlockedFlag = False + def unlock(self): self.modelerLock = UNLOCKED @@ -77,7 +83,7 @@ def lockWarning(self): if self.sendEventWhenBlocked(): - return "Send event on block" + return "Send event when blocked" else: - return "Do not send event on block" + return "Do not send event when blocked" \ No newline at end of file Modified: trunk/Products/ZenModel/migrate/menus.py =================================================================== --- trunk/Products/ZenModel/migrate/menus.py 2007-03-09 18:36:40 UTC (rev 4254) +++ trunk/Products/ZenModel/migrate/menus.py 2007-03-09 21:19:18 UTC (rev 4255) @@ -158,18 +158,34 @@ ), dict( id= 'lockFromDeletion', - description='Lock from Deletion', + description='Lock from deletion', action= 'lockFromDeletion', permissions=('Change Device',), allowed_classes=('Device','DeviceComponent') ), dict( id= 'lockFromUpdate', - description='Lock from Update/Deletion', + description='Lock from update/deletion', action= 'lockFromUpdate', permissions=('Change Device',), allowed_classes=('Device','DeviceComponent') ), + ], + 'LockWarning':[ + dict( + id= 'setSendEventWhenBlockedFlag', + description='Send event when blocked', + action= 'setSendEventWhenBlockedFlag', + permissions=('Change Device',), + allowed_classes=('Device','DeviceComponent') + ), + dict( + id= 'unsetSendEventWhenBlockedFlag', + description='Do not send event when blocked', + action= 'unsetSendEventWhenBlockedFlag', + permissions=('Change Device',), + allowed_classes=('Device','DeviceComponent') + ), ] }) Modified: trunk/Products/ZenModel/skins/zenmodel/deviceStatus.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceStatus.pt 2007-03-09 18:36:40 UTC (rev 4254) +++ trunk/Products/ZenModel/skins/zenmodel/deviceStatus.pt 2007-03-09 21:19:18 UTC (rev 4255) @@ -1,8 +1,19 @@ <tal:block metal:use-macro="here/templates/macros/page2"> <tal:block metal:fill-slot="contentPane"> + <table class="zentable" cellpadding="3" cellspacing="1" - metal:define-macro="deviceStatusInfo"> - <tr tal:define="menu_id string:Lockable"> + metal:define-macro="deviceStatusInfo"> + <tr> + <td tal:define="tabletitle python:here.lockStatus(); + menu_id string:Lockable"> + <tal:block metal:use-macro="here/zenuimacros/macros/tabletitle"/> + </td> + <td tal:define="tabletitle python:here.lockWarning(); + menu_id string:LockWarning"> + <tal:block metal:use-macro="here/zenuimacros/macros/tabletitle"/> + </td> + </tr> + <tr> <th class="tabletitle" colspan=4>Status</th> </tr> <tr> |
From: <sv...@ze...> - 2007-03-09 18:36:42
|
Author: ecn Date: 2007-03-09 12:36:40 -0600 (Fri, 09 Mar 2007) New Revision: 4254 Modified: trunk/Products/DataCollector/SnmpClient.py Log: * fix numerous embarassing issues (mostly mine) now that we aren't ignoring errors Modified: trunk/Products/DataCollector/SnmpClient.py =================================================================== --- trunk/Products/DataCollector/SnmpClient.py 2007-03-09 17:01:49 UTC (rev 4253) +++ trunk/Products/DataCollector/SnmpClient.py 2007-03-09 18:36:40 UTC (rev 4254) @@ -61,22 +61,24 @@ def checkCiscoChange(self, driver): """Check to see if a cisco box has changed. """ + device = self.device yield self.proxy.get(['.1.3.6.1.4.1.9.9.43.1.1.1.0'], timeout=self.timeout, retryCount=self.tries) lastpolluptime = device.getLastPollSnmpUpTime() - self.log.debug("lastpolluptime = %s", lastpolluptime) + log.debug("lastpolluptime = %s", lastpolluptime) try: lastchange = driver.next().values()[0] - self.log.debug("lastchange = %s", lastchange) + log.debug("lastchange = %s", lastchange) if lastchange == lastpolluptime: - self.log.info("skipping cisco device %s no change detected", - device.id) - yield defer.success(False) + log.info("skipping cisco device %s no change detected", + device.id) + yield defer.succeed(False) else: device.setLastPollSnmpUpTime(lastchange) - except (ZenSnmpError, PySnmpError): pass - yield defer.success(False) + except Exception: + pass + yield defer.succeed(False) def doRun(self, driver): @@ -109,10 +111,9 @@ maxRepetitions=maxRepetitions) self._tabledata[pname][tmap] = driver.next() except Exception, ex: - trace = log.getException(ex) if not isinstance( ex, error.TimeoutError ): - log.error("""device %s plugin %s unexpected error: %s""", - self.hostname, pname, trace) + log.exception("device %s plugin %s unexpected error", + self.hostname, pname) def getResults(self): @@ -130,10 +131,13 @@ data.append((pname, (getdata, tabledata))) return data - def clientFinished(self, *ignored): + def clientFinished(self, result): + log.info("snmp client finished collection for %s" % self.hostname) + if isinstance(result, failure.Failure): + log.error("Device %s had an error: %s", self.hostname, + result.getTraceback()) self.proxy.close() """tell the datacollector that we are all done""" - log.info("snmp client finished collection for %s" % self.hostname) if self.datacollector: self.datacollector.clientFinished(self) else: |
From: <sv...@ze...> - 2007-03-09 17:01:56
|
Author: ecn Date: 2007-03-09 11:01:49 -0600 (Fri, 09 Mar 2007) New Revision: 4253 Modified: trunk/Products/DataCollector/ApplyDataMap.py Log: * demote more info log messages to debug Modified: trunk/Products/DataCollector/ApplyDataMap.py =================================================================== --- trunk/Products/DataCollector/ApplyDataMap.py 2007-03-09 16:58:23 UTC (rev 4252) +++ trunk/Products/DataCollector/ApplyDataMap.py 2007-03-09 17:01:49 UTC (rev 4253) @@ -157,7 +157,7 @@ objchange = False obj = rel._getOb(objmap.id) if isinstance(obj, Lockable): - log.info('%s obj is Lockable, status: %s' % (obj and obj.id or '', obj.lockStatus())) + log.debug('%s obj is Lockable, status: %s' % (obj and obj.id or '', obj.lockStatus())) if not obj.isLockedFromUpdates(): objchange = self._updateObject(obj, objmap) elif (obj.sendEventWhenBlocked() @@ -183,7 +183,7 @@ for id in relids: obj = rel._getOb(id) if isinstance(obj, Lockable): - log.info('%s obj is Lockable, status: %s' % (obj and obj.id or '', obj.lockStatus())) + log.debug('%s obj is Lockable, status: %s' % (obj and obj.id or '', obj.lockStatus())) if not obj.isLockedFromDeletion(): self.logChange(device, Change_Remove, "removing object %s from rel %s on device %s" % ( @@ -276,7 +276,7 @@ "No relation %s found on device %s" % (relname, device.id)) remoteObj = rel._getOb(remoteObj.id) if isinstance(remoteObj, Lockable): - log.info('%s obj is Lockable, status: %s' % (remoteObj and remoteObj.id or '', remoteObj.lockStatus())) + log.debug('%s obj is Lockable, status: %s' % (remoteObj and remoteObj.id or '', remoteObj.lockStatus())) if not remoteObj.isLockedFromUpdates(): self.logChange(device, Change_Add, "adding object %s to relationship %s" % ( |
From: <sv...@ze...> - 2007-03-09 16:58:24
|
Author: ecn Date: 2007-03-09 10:58:23 -0600 (Fri, 09 Mar 2007) New Revision: 4252 Modified: trunk/Products/DataCollector/zendisc.py Log: * protect against bad ipobj Modified: trunk/Products/DataCollector/zendisc.py =================================================================== --- trunk/Products/DataCollector/zendisc.py 2007-03-09 16:57:28 UTC (rev 4251) +++ trunk/Products/DataCollector/zendisc.py 2007-03-09 16:58:23 UTC (rev 4252) @@ -155,11 +155,11 @@ else: self.log.info("ip '%s' on device '%s' remodel", ip, dev.id) + self.sendDiscoveredEvent(ipobj) dev = manage_createDevice(self.dmd, ip, devicepath, productionState=prodState) transaction.commit() dev.collectDevice() - self.sendDiscoveredEvent(ipobj) return dev except ZentinelException, e: self.log.warn(e) |
From: <sv...@ze...> - 2007-03-09 16:57:59
|
Author: ecn Date: 2007-03-09 10:57:28 -0600 (Fri, 09 Mar 2007) New Revision: 4251 Modified: trunk/Products/DataCollector/ApplyDataMap.py Log: * sorry marc: this is really gumming up the log messages Modified: trunk/Products/DataCollector/ApplyDataMap.py =================================================================== --- trunk/Products/DataCollector/ApplyDataMap.py 2007-03-09 16:21:06 UTC (rev 4250) +++ trunk/Products/DataCollector/ApplyDataMap.py 2007-03-09 16:57:28 UTC (rev 4251) @@ -118,7 +118,7 @@ changed = self._updateRelationship(tobj, datamap) elif hasattr(datamap, 'modname'): if isinstance(tobj, Lockable): - log.info('%s obj is Lockable, status: %s' % (tobj and tobj.id or '', tobj.lockStatus())) + log.debug('%s obj is Lockable, status: %s' % (tobj and tobj.id or '', tobj.lockStatus())) if not tobj.isLockedFromUpdates(): changed = self._updateObject(tobj, datamap) elif (tobj.sendEventWhenBlocked() |
From: <sv...@ze...> - 2007-03-09 16:21:35
|
Author: ecn Date: 2007-03-09 10:21:06 -0600 (Fri, 09 Mar 2007) New Revision: 4250 Modified: sandboxen/edahl/zenrelrefactor/DataCollector/SnmpClient.py Log: * stop ignoring errors Modified: sandboxen/edahl/zenrelrefactor/DataCollector/SnmpClient.py =================================================================== --- sandboxen/edahl/zenrelrefactor/DataCollector/SnmpClient.py 2007-03-09 14:37:41 UTC (rev 4249) +++ sandboxen/edahl/zenrelrefactor/DataCollector/SnmpClient.py 2007-03-09 16:21:06 UTC (rev 4250) @@ -86,13 +86,14 @@ changed = driver.next() if changed: yield drive(self.collect) + driver.next() def collect(self, driver): for plugin in self.plugins: try: - log.debug('running %s', plugin) pname = plugin.name() + log.debug('running %s', pname) self._tabledata[pname] = {} log.debug("sending queries for plugin %s", pname) if plugin.snmpGetMap: @@ -109,10 +110,9 @@ maxRepetitions=maxRepetitions) self._tabledata[pname][tmap] = driver.next() except Exception, ex: - trace = log.getException(ex) if not isinstance( ex, error.TimeoutError ): - log.error("""device %s plugin %s unexpected error: %s""", - self.hostname, pname, trace) + log.exception("device %s plugin %s unexpected error", + self.hostname, pname) def getResults(self): @@ -130,10 +130,12 @@ data.append((pname, (getdata, tabledata))) return data - def clientFinished(self, *ignored): + def clientFinished(self, result): + log.info("snmp client finished collection for %s" % self.hostname) + if isinstance(result, failure.Failure): + log.error("Error occured in collection: %s", result.getTraceback()) self.proxy.close() """tell the datacollector that we are all done""" - log.info("snmp client finished collection for %s" % self.hostname) if self.datacollector: self.datacollector.clientFinished(self) else: |
From: <sv...@ze...> - 2007-03-09 14:37:42
|
Author: edahl Date: 2007-03-09 08:37:41 -0600 (Fri, 09 Mar 2007) New Revision: 4249 Modified: sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyContRelationship.py sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyRelationship.py sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyRelationshipBase.py Log: * roll back count cache on relations to make things simpler Modified: sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyContRelationship.py =================================================================== --- sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyContRelationship.py 2007-03-09 14:10:24 UTC (rev 4248) +++ sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyContRelationship.py 2007-03-09 14:37:41 UTC (rev 4249) @@ -46,7 +46,6 @@ security = ClassSecurityInfo() - _count = 0 def __init__(self, id): """set our instance values""" @@ -75,16 +74,6 @@ return self._objects.has_key(name) - def countObjects(self): - """Return the number of objects in this relationship""" - return self._count - - - def _resetCount(self): - self._count = len(self._objects) - self.__primary_parent__._p_changed = True - - def hasobject(self, obj): "check to see if we have this object" return self._objects.get(obj.id) == obj @@ -163,8 +152,6 @@ if v is not None: id=v self._objects[id] = aq_base(obj) obj = aq_base(obj).__of__(self) - self._count=len(self._objects) - self.__primary_parent__._p_changed = True def _remove(self, obj=None): @@ -182,8 +169,6 @@ del self._objects[id] else: self._objects = OOBTree() - self._count=len(self._objects) - self.__primary_parent__._p_changed = True def _remoteRemove(self, obj=None): @@ -293,12 +278,4 @@ ofile.write("</tomanycont>\n") - def checkRelation(self, repair=False): - """Check to make sure that relationship bidirectionality is ok. - """ - if repair and len(self._objects) != self._count: - log.warn("resetting count on %s", self.getPrimaryId()) - self._resetCount() - - InitializeClass(ToManyContRelationship) Modified: sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyRelationship.py =================================================================== --- sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyRelationship.py 2007-03-09 14:10:24 UTC (rev 4248) +++ sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyRelationship.py 2007-03-09 14:37:41 UTC (rev 4249) @@ -60,15 +60,6 @@ return [ob.__of__(self) for ob in self._objects] - def countObjects(self): - """Return the number of objects in this relationship""" - return len(self._objects) - - - def _resetCount(self): - pass - - def hasobject(self, obj): "check to see if we have this object" try: Modified: sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyRelationshipBase.py =================================================================== --- sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyRelationshipBase.py 2007-03-09 14:10:24 UTC (rev 4248) +++ sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyRelationshipBase.py 2007-03-09 14:37:41 UTC (rev 4249) @@ -38,15 +38,11 @@ _operation = -1 # if a Relationship's are only deleted - _count = 0 def countObjects(self): """Return the number of objects in this relationship""" - raise NotImplementedError + return len(self._objects) - def _resetCount(self): - raise NotImplementedError - def findObjectsById(self, partid): """Return a list of objects by running find on their id""" |
From: <sv...@ze...> - 2007-03-09 14:32:54
|
Author: edahl Date: 2007-03-09 08:03:22 -0600 (Fri, 09 Mar 2007) New Revision: 4247 Modified: sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyContRelationship.py sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyRelationship.py sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyRelationshipBase.py Log: * add object count cache for ToManyCount not sure if this is worth it Modified: sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyContRelationship.py =================================================================== --- sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyContRelationship.py 2007-03-09 03:47:51 UTC (rev 4246) +++ sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyContRelationship.py 2007-03-09 14:03:22 UTC (rev 4247) @@ -46,6 +46,7 @@ security = ClassSecurityInfo() + _count = 0 def __init__(self, id): """set our instance values""" @@ -74,6 +75,16 @@ return self._objects.has_key(name) + def countObjects(self): + """Return the number of objects in this relationship""" + return self._count + + + def _resetCount(self): + self._count = len(self._objects) + self.__primary_parent__._p_changed = True + + def hasobject(self, obj): "check to see if we have this object" return self._objects.get(obj.id) == obj @@ -152,7 +163,8 @@ if v is not None: id=v self._objects[id] = aq_base(obj) obj = aq_base(obj).__of__(self) - #self.__primary_parent__._p_changed = True + self._count=len(self._objects) + self.__primary_parent__._p_changed = True def _remove(self, obj=None): @@ -170,7 +182,8 @@ del self._objects[id] else: self._objects = OOBTree() - #self.__primary_parent__._p_changed = True + self._count=len(self._objects) + self.__primary_parent__._p_changed = True def _remoteRemove(self, obj=None): @@ -283,10 +296,9 @@ def checkRelation(self, repair=False): """Check to make sure that relationship bidirectionality is ok. """ - pass - #if repair and len(self._objects) != self._count: - # log.warn("resetting count on %s", self.getPrimaryId()) - # self._resetCount() + if repair and len(self._objects) != self._count: + log.warn("resetting count on %s", self.getPrimaryId()) + self._resetCount() InitializeClass(ToManyContRelationship) Modified: sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyRelationship.py =================================================================== --- sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyRelationship.py 2007-03-09 03:47:51 UTC (rev 4246) +++ sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyRelationship.py 2007-03-09 14:03:22 UTC (rev 4247) @@ -60,6 +60,15 @@ return [ob.__of__(self) for ob in self._objects] + def countObjects(self): + """Return the number of objects in this relationship""" + return len(self._objects) + + + def _resetCount(self): + pass + + def hasobject(self, obj): "check to see if we have this object" try: Modified: sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyRelationshipBase.py =================================================================== --- sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyRelationshipBase.py 2007-03-09 03:47:51 UTC (rev 4246) +++ sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyRelationshipBase.py 2007-03-09 14:03:22 UTC (rev 4247) @@ -38,11 +38,15 @@ _operation = -1 # if a Relationship's are only deleted + _count = 0 def countObjects(self): """Return the number of objects in this relationship""" - return len(self._objects) + raise NotImplementedError + def _resetCount(self): + raise NotImplementedError + def findObjectsById(self, partid): """Return a list of objects by running find on their id""" |
From: <sv...@ze...> - 2007-03-09 14:10:39
|
Author: ecn Date: 2007-03-09 08:10:24 -0600 (Fri, 09 Mar 2007) New Revision: 4248 Modified: trunk/Products/ZenRRD/zenprocess.py Log: * scan devices in such that open/close may be better paired Modified: trunk/Products/ZenRRD/zenprocess.py =================================================================== --- trunk/Products/ZenRRD/zenprocess.py 2007-03-09 14:03:22 UTC (rev 4247) +++ trunk/Products/ZenRRD/zenprocess.py 2007-03-09 14:10:24 UTC (rev 4248) @@ -194,6 +194,8 @@ snmpVersion=self.version, protocol=self.protocol, allowCache=True) + self.proxy.tries = self.tries + self.proxy.timeout = self.timeout def updateConfig(self, processes): @@ -217,9 +219,7 @@ del self.processes[name] def get(self, oids): - return self.proxy.get(oids, - timeout=self.timeout, - retryCount=self.tries) + return self.proxy.get(oids, self.timeout, self.tries) def getTables(self, oids): @@ -237,7 +237,7 @@ def __init__(self): SnmpDaemon.__init__(self, 'zenprocess') self._devices = {} - self.perfScanJob = None + self.scanning = None self.downDevices = Set() def devices(self): @@ -290,7 +290,6 @@ yield self.model.callRemote('getProcessStatus', self.options.device) self.updateProcessStatus(driver.next()) - # fetch pids with an SNMP scan driveLater(self.configCycleInterval * 60, self.start) @@ -307,26 +306,25 @@ for name, device in self._devices.items(): for p in device.processes.values(): p.status = down.get( (name, p.originalName), 0) - - def findPids(self, devices): - "Scan all devices for process names and args" - jobs = NJobs(PARALLEL_JOBS, self.scanDevice, devices) - return jobs.start() - def scanDevice(self, device): - """Fetch all the process info, but not too often: + def oneDevice(self, device): + device.open() + def go(driver): + yield self.scanDevice(device) + driver.next() + yield self.fetchPerf(device) + driver.next() + d = drive(go) + d.addBoth(closer, device) + return d - Both 'counted' and 'config' cycles scan devices. - """ - if time.time() - device.lastScan < self.snmpCycleInterval: - return defer.succeed(None) + def scanDevice(self, device): + "Fetch all the process info" device.lastScan = time.time() tables = [NAMETABLE, ARGSTABLE] - device.open() d = device.getTables(tables) - d.addBoth(closer, device) d.addCallback(self.storeProcessNames, device) d.addErrback(self.deviceFailure, device) return d @@ -441,65 +439,51 @@ "Basic SNMP scan loop" reactor.callLater(self.snmpCycleInterval, self.periodic) - def doPeriodic(driver): - yield self.zem.callRemote('getDevicePingIssues') - try: - self.downDevices = Set([d[0] for d in driver.next()]) - except Exception, ex: - log.exception(ex) - - yield self.countScan() - driver.next() - - yield self.perfScan() - driver.next() - - drive(doPeriodic).addCallback(self.heartbeat) - - - def perfScan(self): - "Read performance data for non-counted Processes" - if self.perfScanJob: - running, unstarted, finished = self.perfScanJob.status() + if self.scanning: + running, unstarted, finished = self.scanning.status() msg = "performance scan job not finishing: " \ "%d jobs running %d jobs waiting %d jobs finished" % \ (running, unstarted, finished) log.error(msg) - return defer.fail(ScanFailure(msg)) - # in M-parallel, for each device - # fetch the process status - self.perfScanJob = NJobs(MAX_OIDS_PER_REQUEST, - self.fetchDevicePerf, self.devices().values()) - return self.perfScanJob.start() + return + def doPeriodic(driver): + + yield self.zem.callRemote('getDevicePingIssues') + self.downDevices = Set([d[0] for d in driver.next()]) - def countScan(self): - "Read counts for counted Processes" - return self.findPids(self.devices().values()) + self.scanning = NJobs(PARALLEL_JOBS, + self.oneDevice, + self.devices().values()) + yield self.scanning.start() + driver.next() + drive(doPeriodic).addCallback(self.heartbeat) - def fetchDevicePerf(self, device): + + def fetchPerf(self, device): "Get performance data for all the monitored Processes on a device" oids = [] for pid, pidConf in device.pids.items(): oids.extend([CPU + str(pid), MEM + str(pid)]) if not oids: return defer.succeed(([], device)) - device.open() + d = device.get(oids) - d.addBoth(closer, device) - d.addCallback(self.storePerfStats, device) - d.addErrback(self.error) + d.addBoth(self.storePerfStats, device) return d def storePerfStats(self, results, device): "Save the performance data in RRD files" + if isinstance(results, failure.Failure): + self.error(results) + return results byConf = reverseDict(device.pids) for pidConf, pids in byConf.items(): if len(pids) != 1: - log.warning("There are %d pids by the name %s", - len(pids), pidConf.name) + log.info("There are %d pids by the name %s", + len(pids), pidConf.name) pidName = pidConf.name for pid in pids: cpu = results.get(CPU + str(pid), None) @@ -525,11 +509,11 @@ def heartbeat(self, *unused): - self.perfScanJob = None + self.scanning = None devices = self.devices() pids = sum(map(lambda x: len(x.pids), devices.values())) - log.debug("Pulled process status for %d devices and %d processes", - len(devices), pids) + log.info("Pulled process status for %d devices and %d processes", + len(devices), pids) SnmpDaemon.heartbeat(self) |
From: <sv...@ze...> - 2007-03-09 03:47:52
|
Author: edahl Date: 2007-03-08 21:47:51 -0600 (Thu, 08 Mar 2007) New Revision: 4246 Modified: sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyContRelationship.py Log: * change to OOBTree seems to make things much faster and definitely smaller Modified: sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyContRelationship.py =================================================================== --- sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyContRelationship.py 2007-03-08 22:59:52 UTC (rev 4245) +++ sandboxen/edahl/zenrelrefactor/ZenRelations/ToManyContRelationship.py 2007-03-09 03:47:51 UTC (rev 4246) @@ -50,7 +50,7 @@ def __init__(self, id): """set our instance values""" self.id = id - self._objects = {} + self._objects = OOBTree() def __call__(self): @@ -152,7 +152,7 @@ if v is not None: id=v self._objects[id] = aq_base(obj) obj = aq_base(obj).__of__(self) - self.__primary_parent__._p_changed = True + #self.__primary_parent__._p_changed = True def _remove(self, obj=None): @@ -170,7 +170,7 @@ del self._objects[id] else: self._objects = OOBTree() - self.__primary_parent__._p_changed = True + #self.__primary_parent__._p_changed = True def _remoteRemove(self, obj=None): |