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-04-30 21:59:35
|
Author: ian Date: 2007-04-30 17:59:34 -0400 (Mon, 30 Apr 2007) New Revision: 4970 Added: trunk/Products/ZenWidgets/skins/zenui/img/actions_button_depressed_left.gif trunk/Products/ZenWidgets/skins/zenui/img/actions_button_left.gif Log: * Forgot to commit new images Added: trunk/Products/ZenWidgets/skins/zenui/img/actions_button_depressed_left.gif Property changes on: trunk/Products/ZenWidgets/skins/zenui/img/actions_button_depressed_left.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/Products/ZenWidgets/skins/zenui/img/actions_button_left.gif Property changes on: trunk/Products/ZenWidgets/skins/zenui/img/actions_button_left.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream |
From: <sv...@ze...> - 2007-04-30 21:49:52
|
Author: ian Date: 2007-04-30 17:49:53 -0400 (Mon, 30 Apr 2007) New Revision: 4969 Modified: trunk/Products/ZenModel/skins/zenmodel/zenoss.css trunk/Products/ZenModel/skins/zenmodel/zenoss_ie.css trunk/Products/ZenWidgets/skins/zenui/css/menus.css trunk/Products/ZenWidgets/skins/zenui/javascript/menus.js trunk/Products/ZenWidgets/skins/zenui/zenuimacros.pt Log: * Moved table menus to the left Modified: trunk/Products/ZenModel/skins/zenmodel/zenoss.css =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/zenoss.css 2007-04-30 20:41:27 UTC (rev 4968) +++ trunk/Products/ZenModel/skins/zenmodel/zenoss.css 2007-04-30 21:49:53 UTC (rev 4969) @@ -479,7 +479,7 @@ } .tabletitletext { - margin-left: 52px; + margin-left: 66px; font-weight: bold; font-size: 10pt; } @@ -732,3 +732,4 @@ top: 0px; z-index: 2007; } + Modified: trunk/Products/ZenModel/skins/zenmodel/zenoss_ie.css =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/zenoss_ie.css 2007-04-30 20:41:27 UTC (rev 4968) +++ trunk/Products/ZenModel/skins/zenmodel/zenoss_ie.css 2007-04-30 21:49:53 UTC (rev 4969) @@ -1,3 +1,6 @@ + +* { zoom: 1 } + /* IE6 fix only */ * html #leftPane ul li { border-top: 1px solid white; @@ -50,5 +53,7 @@ z-index: 5000; } -.devmovemenuitems { +div.contextmenuitems, +div.menu { + zoom: 1; } Modified: trunk/Products/ZenWidgets/skins/zenui/css/menus.css =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/css/menus.css 2007-04-30 20:41:27 UTC (rev 4968) +++ trunk/Products/ZenWidgets/skins/zenui/css/menus.css 2007-04-30 21:49:53 UTC (rev 4969) @@ -118,12 +118,12 @@ div.devmovemenu { width: 52px; - border-left: 1px inset #666; + border-right: 1px solid #333; height: 25px; - background: #E0E0E0 url('img/actions_button.gif') bottom left no-repeat; + background: #E0E0E0 url('img/actions_button_left.gif') bottom left no-repeat; position:absolute; z-index: 4000; - right:0px; + right:-1px; bottom: 0px; } @@ -133,7 +133,7 @@ } div.devmovemenu:hover { - background: #E0E0E0 url('img/actions_button_depressed.gif') bottom left no-repeat; + background: #E0E0E0 url('img/actions_button_depressed_left.gif') bottom left no-repeat; } .menu * { Modified: trunk/Products/ZenWidgets/skins/zenui/javascript/menus.js =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/javascript/menus.js 2007-04-30 20:41:27 UTC (rev 4968) +++ trunk/Products/ZenWidgets/skins/zenui/javascript/menus.js 2007-04-30 21:49:53 UTC (rev 4969) @@ -27,7 +27,7 @@ finalDims = $(menu).className=='devmovemenuitems'?{x:0, y:0}:{x:0, y:24}; totalX = pPos.x + mDims.w; finalDims.x = totalX>=vDims.w+vPos.x?pDims.w-mDims.w:finalDims.x; - finalDims.x = $(menu).className=='devmovemenuitems'?-mDims.w:finalDims.x; + finalDims.x = $(menu).className=='devmovemenuitems'?4-pDims.w:finalDims.x; totalY = pPos.y + pDims.h + mDims.h; var topmenu = getElementsByTagAndClassName('div', 'menu_top', menu)[0]; if (totalY>=vDims.h+vPos.y) { @@ -66,7 +66,8 @@ dropOtherMenuButtons(rel); var relPos = calcMenuPos(rel, menu); setElementPosition(menu, relPos); - setStyle(menu, {'visibility':'visible','z-index':'10000','opacity':'0.98' }); + setStyle(menu, {'visibility':'visible','z-index':'10000','opacity':'0.98', + 'zoom':1}); if (navigator.userAgent.match('Mac')) { try {setStyle(eventZenGrid.scrollbar, {'overflow':'hidden'})} catch(e) {noop()}; Modified: trunk/Products/ZenWidgets/skins/zenui/zenuimacros.pt =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/zenuimacros.pt 2007-04-30 20:41:27 UTC (rev 4968) +++ trunk/Products/ZenWidgets/skins/zenui/zenuimacros.pt 2007-04-30 21:49:53 UTC (rev 4969) @@ -102,7 +102,13 @@ <tal:block metal:define-macro="tabletitle"> <th class="tabletitle" tal:attributes="colspan tblcolspan|string:1"> <div class="tabletitlecontainer"> - <div class="leftcorner"> </div> + <div class="leftcorner"> +<tal:block metal:define-slot="menuslot"> + <tal:block tal:condition="menu_id | python:False"> + <tal:block metal:use-macro="here/zenuimacros/macros/devmovemenu"/> + </tal:block> +</tal:block> +</div> <tal:block metal:define-slot="titleslot"> <span class="tabletitletext" tal:content="tabletitle | string:Items"> Title @@ -113,11 +119,6 @@ <tal:block metal:use-macro="here/zenuimacros/macros/filterbox"/> </tal:block> </tal:block> -<tal:block metal:define-slot="menuslot"> - <tal:block tal:condition="menu_id | python:False"> - <tal:block metal:use-macro="here/zenuimacros/macros/devmovemenu"/> - </tal:block> -</tal:block> <div class="rightcorner"> </div> </div> </th> |
From: <sv...@ze...> - 2007-04-30 20:41:25
|
Author: edahl Date: 2007-04-30 16:41:27 -0400 (Mon, 30 Apr 2007) New Revision: 4968 Modified: trunk/Products/ZenReports/reports/User_Reports/Notification_Schedules.rpt Log: * fix colspan on report Modified: trunk/Products/ZenReports/reports/User_Reports/Notification_Schedules.rpt =================================================================== --- trunk/Products/ZenReports/reports/User_Reports/Notification_Schedules.rpt 2007-04-30 20:41:14 UTC (rev 4967) +++ trunk/Products/ZenReports/reports/User_Reports/Notification_Schedules.rpt 2007-04-30 20:41:27 UTC (rev 4968) @@ -60,7 +60,7 @@ </tr> </span> <tr> - <td colspan="6" class="tableheader" align='center'> + <td colspan="7" class="tableheader" align='center'> <form metal:use-macro="here/zenTableNavigation/macros/navtool"/> </td> </tr> @@ -74,4 +74,4 @@ </tal:block> </tal:block> -</tal:block> \ No newline at end of file +</tal:block> |
From: <sv...@ze...> - 2007-04-30 20:41:13
|
Author: ian Date: 2007-04-30 16:41:14 -0400 (Mon, 30 Apr 2007) New Revision: 4967 Modified: trunk/Products/ZenWidgets/skins/zenui/javascript/menus.js Log: * Fixed small z-indexing issue with the left pane Modified: trunk/Products/ZenWidgets/skins/zenui/javascript/menus.js =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/javascript/menus.js 2007-04-30 20:36:14 UTC (rev 4966) +++ trunk/Products/ZenWidgets/skins/zenui/javascript/menus.js 2007-04-30 20:41:14 UTC (rev 4967) @@ -52,6 +52,10 @@ var hideMenu = function(menu) { setStyle(menu, {'visibility':'hidden','z-index':'1'}); + try { + setStyle(getFirstParentByTagAndClassName(menu, 'div', + 'tabletitlecontainer'), {'z-index':'1'}); + } catch(e){noop()} if (navigator.userAgent.match('Mac')) { try {setStyle(eventZenGrid.scrollbar, {'overflow':'auto'})} catch(e) {noop()}; @@ -75,7 +79,7 @@ } var dropOtherMenuButtons = function(button) { - var lowerButton = function(btn) { setStyle(btn, {'z-index':'2000'})}; + var lowerButton = function(btn) { setStyle(btn, {'z-index':'1'})}; try { mymenu = getFirstParentByTagAndClassName($(button).parentNode, 'div', 'tabletitlecontainer'); |
Author: ian Date: 2007-04-30 16:36:14 -0400 (Mon, 30 Apr 2007) New Revision: 4966 Added: trunk/Products/ZenWidgets/skins/zenui/img/refresh_off.png trunk/Products/ZenWidgets/skins/zenui/img/refresh_on.png Modified: trunk/Products/ZenEvents/skins/zenevents/eventClassStatus.pt trunk/Products/ZenModel/skins/zenmodel/deviceList.pt trunk/Products/ZenModel/skins/zenmodel/deviceListMacro.pt trunk/Products/ZenModel/skins/zenmodel/deviceOrganizerStatus.pt trunk/Products/ZenModel/skins/zenmodel/viewNetworkOverview.pt trunk/Products/ZenModel/skins/zenmodel/zenoss.css trunk/Products/ZenModel/skins/zenmodel/zenoss_ie.css trunk/Products/ZenWidgets/skins/zenui/css/menus.css trunk/Products/ZenWidgets/skins/zenui/css/tables.css trunk/Products/ZenWidgets/skins/zenui/javascript/menus.js Log: * Checking in refresh on/off images * Fixed a few IE crash bugs (input elements outside of td elements in tables) * Set z-indexing in IE with brute force javascript, since nothing else works Modified: trunk/Products/ZenEvents/skins/zenevents/eventClassStatus.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/eventClassStatus.pt 2007-04-30 20:07:36 UTC (rev 4965) +++ trunk/Products/ZenEvents/skins/zenevents/eventClassStatus.pt 2007-04-30 20:36:14 UTC (rev 4966) @@ -34,15 +34,15 @@ menu_id string:Organizer_list; batch python:here.ZenTableManager.getBatch(tableName,objects); tabletitle string:SubClasses; "> + <input type='hidden' name='tableName' tal:attributes="value tableName" /> + <input type="hidden" name="zenScreenName" + tal:attributes="value template/id"/> <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"/> - <span tal:condition="objects" tal:omit-tag=""> + <tal:block tal:condition="objects" tal:omit-tag=""> <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'primarySortKey','Name')"> @@ -85,7 +85,7 @@ <span metal:use-macro="here/zenTableNavigation/macros/navbody" /> </td> </tr> - </span> + </tal:block> <tr tal:condition="here/isManager"> <td class="tableheader" colspan="6"> <span metal:define-macro="editor" tal:omit-tag=""> @@ -114,15 +114,15 @@ menu_id string:EventMapping_list; batch python:here.ZenTableManager.getBatch(tableName,objects); tabletitle string:EventClass Mappings; "> + <input type='hidden' name='tableName' tal:attributes="value tableName" /> + <input type="hidden" name="zenScreenName" + tal:attributes="value template/id"/> <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"/> - <span tal:condition="objects" tal:omit-tag=""> + <tal:block tal:condition="objects" tal:omit-tag=""> <tal:block metal:define-macro="mapbody"> <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( @@ -164,7 +164,7 @@ <span metal:use-macro="here/zenTableNavigation/macros/navbody" /> </td> </tr> - </span> + </tal:block> <tr tal:condition="here/isManager"> <td class="tableheader" colspan="4"> <input class="tableheader" type="submit" Modified: trunk/Products/ZenModel/skins/zenmodel/deviceList.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceList.pt 2007-04-30 20:07:36 UTC (rev 4965) +++ trunk/Products/ZenModel/skins/zenmodel/deviceList.pt 2007-04-30 20:36:14 UTC (rev 4966) @@ -23,7 +23,7 @@ <!-- BEGIN TABLE CONTENTS --> - <span metal:use-macro="here/deviceListMacro/macros/devListBody"/> + <span metal:use-macro="here/deviceListMacro/macros/devListBody" /> <tr> <td colspan="0" class="tableheader" align='center'> <tal:block Modified: trunk/Products/ZenModel/skins/zenmodel/deviceListMacro.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceListMacro.pt 2007-04-30 20:07:36 UTC (rev 4965) +++ trunk/Products/ZenModel/skins/zenmodel/deviceListMacro.pt 2007-04-30 20:36:14 UTC (rev 4966) @@ -43,6 +43,9 @@ menu_id string:Device_list; batch python:here.ZenTableManager.getBatch(tableName,objects); tabletitle string:Devices"> + <input type='hidden' name='tableName' tal:attributes="value tableName" /> + <input type="hidden" name="zenScreenName" + tal:attributes="value template/id"/> <tal:block metal:use-macro="here/zenuimacros/macros/zentable"> <!--====Optional titlebar slots============= @@ -59,11 +62,7 @@ <!-- BEGIN TABLE CONTENTS --> - <input type='hidden' name='tableName' tal:attributes="value tableName" /> - <input type="hidden" name="zenScreenName" - tal:attributes="value template/id"/> <tal:block metal:define-macro="devListBody"> - <tbody class="zentablecontents"> <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'primarySortKey','Name')">Name @@ -127,7 +126,6 @@ </td> </tr> </tal:block> - </tbody> </tal:block> <tr> <td colspan="0" class="tableheader" align='center'> Modified: trunk/Products/ZenModel/skins/zenmodel/deviceOrganizerStatus.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/deviceOrganizerStatus.pt 2007-04-30 20:07:36 UTC (rev 4965) +++ trunk/Products/ZenModel/skins/zenmodel/deviceOrganizerStatus.pt 2007-04-30 20:36:14 UTC (rev 4966) @@ -82,12 +82,12 @@ showfilterbox python:True; tblcolspan string:6; 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"/> - <span tal:condition="objects" tal:omit-tag=""> +<tal:block metal:use-macro="here/zenuimacros/macros/zentable"> +<tal:block metal:fill-slot="zentablecontents"> + <tal:block tal:condition="objects" tal:omit-tag=""> <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'primarySortKey','Name')"> @@ -141,7 +141,7 @@ <span metal:use-macro="here/zenTableNavigation/macros/navbody"/> </td> </tr> - </span> + </tal:block> <tr tal:condition="here/isManager"> <td class="tableheader" colspan="6"> <span metal:define-macro="editor" tal:omit-tag=""> Modified: trunk/Products/ZenModel/skins/zenmodel/viewNetworkOverview.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/viewNetworkOverview.pt 2007-04-30 20:07:36 UTC (rev 4965) +++ trunk/Products/ZenModel/skins/zenmodel/viewNetworkOverview.pt 2007-04-30 20:36:14 UTC (rev 4966) @@ -89,12 +89,12 @@ tabletitle string:Subnetworks; batch python:here.ZenTableManager.getBatch(tableName,objects); menu_id string:Subnetworks"> +<input type='hidden' name='tableName' tal:attributes="value tableName" /> <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" /> - <span tal:condition="objects"> + <tal:block tal:condition="objects"> <tr> <th tal:replace="structure python:here.ZenTableManager.getTableHeader( tableName,'primarySortKey','Address','cmp')"> @@ -138,7 +138,7 @@ <span metal:use-macro="here/zenTableNavigation/macros/navbody" /> </td> </tr> - </span> + </tal:block> <tr tal:condition="here/isManager"> <td class="tableheader" colspan="5"> <span metal:use-macro="here/deviceOrganizerStatus/macros/editor" /> Modified: trunk/Products/ZenModel/skins/zenmodel/zenoss.css =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/zenoss.css 2007-04-30 20:07:36 UTC (rev 4965) +++ trunk/Products/ZenModel/skins/zenmodel/zenoss.css 2007-04-30 20:36:14 UTC (rev 4966) @@ -465,11 +465,9 @@ } div.tabletitlecontainer { - width: 100%; position: relative; height:25px; - padding: 0pt; - margin: 0pt; + z-index: 1999; } .tabletitlecontainer .rightcorner, @@ -477,6 +475,7 @@ position: absolute; bottom: 0px; z-index: 2005; + height:25px; } .tabletitletext { Modified: trunk/Products/ZenModel/skins/zenmodel/zenoss_ie.css =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/zenoss_ie.css 2007-04-30 20:07:36 UTC (rev 4965) +++ trunk/Products/ZenModel/skins/zenmodel/zenoss_ie.css 2007-04-30 20:36:14 UTC (rev 4966) @@ -23,10 +23,32 @@ } div.tabletitlecontainer { - top: 5px; + height:; + background: transparent url(img/titlebar_bg.gif) repeat-x top left; } - #selectedtablinehider { margin-left: -49px; } + + +table.innerzentable { + position: relative; + top: 1px; +} + +div.zentable_selectionbar { + height: 12px; +} + +.tabletitletext { + display: block; + height: 25px; +} + +table.zentable { +z-index: 5000; +} + +.devmovemenuitems { +} Modified: trunk/Products/ZenWidgets/skins/zenui/css/menus.css =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/css/menus.css 2007-04-30 20:07:36 UTC (rev 4965) +++ trunk/Products/ZenWidgets/skins/zenui/css/menus.css 2007-04-30 20:36:14 UTC (rev 4966) @@ -139,11 +139,11 @@ .menu * { padding:0; margin:0; - position: relative; font-weight: normal; } .menu { position: relative; + z-index: 4000; cursor:pointer; } #contextmenu_items { Modified: trunk/Products/ZenWidgets/skins/zenui/css/tables.css =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/css/tables.css 2007-04-30 20:07:36 UTC (rev 4965) +++ trunk/Products/ZenWidgets/skins/zenui/css/tables.css 2007-04-30 20:36:14 UTC (rev 4966) @@ -3,14 +3,17 @@ padding: 0pt; border: 3px solid #5a6f8f; border-top: medium none; - position: relative; width: 100%; - top: -3px; font-weight: normal; font-size: 8pt; font-family: Verdana, Arial, Helvetica, sans-serif; + position: relative; z-index: 1; + margin-top: -3px; } +* html table.innerzentable { + +} table.innerzentable * { position: relative; @@ -33,6 +36,7 @@ border-top: 1px solid #5a6f8f; border-bottom: 1px solid #5a6f8f; position: relative; + z-index: 1; top: -2px; text-align: left; background: transparent url('img/stripe.png'); Added: trunk/Products/ZenWidgets/skins/zenui/img/refresh_off.png Property changes on: trunk/Products/ZenWidgets/skins/zenui/img/refresh_off.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/Products/ZenWidgets/skins/zenui/img/refresh_on.png Property changes on: trunk/Products/ZenWidgets/skins/zenui/img/refresh_on.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/Products/ZenWidgets/skins/zenui/javascript/menus.js =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/javascript/menus.js 2007-04-30 20:07:36 UTC (rev 4965) +++ trunk/Products/ZenWidgets/skins/zenui/javascript/menus.js 2007-04-30 20:36:14 UTC (rev 4966) @@ -75,11 +75,16 @@ } var dropOtherMenuButtons = function(button) { - var lowerButton = function(btn) { setStyle(btn, {'z-index':'9000'})}; - mymenu = $(button).parentNode; - others = $$("div.littlemenu"); + var lowerButton = function(btn) { setStyle(btn, {'z-index':'2000'})}; + try { + mymenu = getFirstParentByTagAndClassName($(button).parentNode, 'div', + 'tabletitlecontainer'); + } catch(e) { + mymenu = null; + } + others = $$("div.tabletitlecontainer"); map(lowerButton, others); - setStyle(mymenu, {'z-index':'10000'}); + if (mymenu) setStyle(mymenu, {'z-index':'10000'}); } var hideOtherSubmenus = function(menu, submenu) { |
From: <sv...@ze...> - 2007-04-30 20:07:46
|
Author: ian Date: 2007-04-30 16:07:36 -0400 (Mon, 30 Apr 2007) New Revision: 4965 Modified: trunk/Products/ZenEvents/EventManagerBase.py Log: * Fixed a problem with submitting single events to actions Modified: trunk/Products/ZenEvents/EventManagerBase.py =================================================================== --- trunk/Products/ZenEvents/EventManagerBase.py 2007-04-30 20:03:47 UTC (rev 4964) +++ trunk/Products/ZenEvents/EventManagerBase.py 2007-04-30 20:07:36 UTC (rev 4965) @@ -279,6 +279,8 @@ goodevids=[], badevids=[], **kwargs): where = self.lookupManagedEntityWhere(me) badevidsstr, goodevidsstr = '','' + if not isinstance(goodevids, (list, tuple)): goodevids = [goodevids] + if not isinstance(badevids, (list, tuple)): badevids = [badevids] if badevids: badevidsstr = " and evid not in ('%s')" %( "','".join(badevids)) if goodevids: goodevidsstr = " and evid in ('%s')" %( |
From: <sv...@ze...> - 2007-04-30 20:04:15
|
Author: jstevens Date: 2007-04-30 16:03:47 -0400 (Mon, 30 Apr 2007) New Revision: 4964 Modified: trunk/Products/ZenEvents/skins/zenevents/viewEventMacros.pt Log: Previous changes broke the page. Looks like the changes were aborted partway though. Modified: trunk/Products/ZenEvents/skins/zenevents/viewEventMacros.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/viewEventMacros.pt 2007-04-30 17:20:48 UTC (rev 4963) +++ trunk/Products/ZenEvents/skins/zenevents/viewEventMacros.pt 2007-04-30 20:03:47 UTC (rev 4964) @@ -17,39 +17,19 @@ <script type="text/javascript" src="/zport/js/MochiKit.js"></script> - - - <tal:block tal:define=" - tabletitle string:<a class="tabletitle" + <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:attributes="href python:tab['action']+'?evid=%s'%evid; class python:tab.get('selected',None) and 'tabletitleselected' or 'tabletitle'" tal:content="tab/name"> TabName - </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> - - + </a> + </td> + </tr> + </table> <script> var tt = document.getElementById("tabsPane") if(tt) { |
From: <sv...@ze...> - 2007-04-30 17:20:46
|
Author: ecn Date: 2007-04-30 13:20:48 -0400 (Mon, 30 Apr 2007) New Revision: 4963 Modified: trunk/Products/ZenModel/OSProcessOrganizer.py Log: * there is no __getitem__ on relations Modified: trunk/Products/ZenModel/OSProcessOrganizer.py =================================================================== --- trunk/Products/ZenModel/OSProcessOrganizer.py 2007-04-30 17:20:21 UTC (rev 4962) +++ trunk/Products/ZenModel/OSProcessOrganizer.py 2007-04-30 17:20:48 UTC (rev 4963) @@ -181,7 +181,7 @@ if type(ids) == types.StringType: ids = (ids,) for id in ids: # delete related os process instances - klass = self.osProcessClasses[id] + klass = self.osProcessClasses._getOb(id) for p in klass.instances(): p.device().os.processes._delObject(p.id) self.osProcessClasses._delObject(id) |
From: <sv...@ze...> - 2007-04-30 17:20:20
|
Author: ecn Date: 2007-04-30 13:20:21 -0400 (Mon, 30 Apr 2007) New Revision: 4962 Modified: trunk/Products/ZenModel/skins/zenmodel/editStatusMonitorConf.pt Log: * fix the ugly in the Status Monitor edit screen Modified: trunk/Products/ZenModel/skins/zenmodel/editStatusMonitorConf.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editStatusMonitorConf.pt 2007-04-30 17:19:58 UTC (rev 4961) +++ trunk/Products/ZenModel/skins/zenmodel/editStatusMonitorConf.pt 2007-04-30 17:20:21 UTC (rev 4962) @@ -64,6 +64,11 @@ <input class="tablevalues" type="text" name="cycleInterval:int" tal:attributes="value here/cycleInterval" /> </td> + <td class="tableheader" align="left">Config Reload Interval (mins)</td> + <td class="tablevalues"> + <input class="tablevalues" type="text" name="configCycleInterval:int" + tal:attributes="value here/configCycleInterval" /> + </td> </tr> <tr> <td class="tableheader" align="left">Maximum Failures</td> @@ -71,11 +76,7 @@ <input class="tablevalues" type="text" name="maxFailures:int" tal:attributes="value here/maxFailures" /> </td> - <td class="tableheader" align="left">Config Reload Interval (mins)</td> - <td class="tablevalues"> - <input class="tablevalues" type="text" name="configCycleInterval:int" - tal:attributes="value here/configCycleInterval" /> - </td> + <td class="tableheader" colspan='2'/> </tr> <tr> <td class=tableheader align="left" > |
From: <sv...@ze...> - 2007-04-30 17:19:59
|
Author: ecn Date: 2007-04-30 13:19:58 -0400 (Mon, 30 Apr 2007) New Revision: 4961 Modified: trunk/Products/ZenModel/UserSettings.py Log: * clean up feedback message Modified: trunk/Products/ZenModel/UserSettings.py =================================================================== --- trunk/Products/ZenModel/UserSettings.py 2007-04-30 16:04:33 UTC (rev 4960) +++ trunk/Products/ZenModel/UserSettings.py 2007-04-30 17:19:58 UTC (rev 4961) @@ -29,6 +29,7 @@ from Products.ZenEvents.CustomEventView import CustomEventView from Products.ZenRelations.RelSchema import * from Products.ZenModel.AdministrativeRole import AdministrativeRole +from Products.ZenUtils import Time from ZenModelRM import ZenModelRM import Products.ZenUtils.Utils as Utils @@ -164,7 +165,7 @@ if REQUEST: kw = REQUEST.form ufolder.updatePropsFromDict(kw) if REQUEST: - REQUEST['message'] = "User created at time:" + REQUEST['message'] = Time.SaveMessage() return self.callZenScreen(REQUEST) else: return user @@ -202,7 +203,7 @@ ufolder = self.getUserSettings(userid) ufolder.updatePropsFromDict(kw) if REQUEST: - REQUEST['message'] = "User saved at time:" + REQUEST['message'] = Time.SaveMessage() return self.callZenScreen(REQUEST) else: return user @@ -236,7 +237,7 @@ mobj.adminRoles._delObject(ar.id) self._delObject(userid) if REQUEST: - REQUEST['message'] = "User saved at time:" + REQUEST['message'] = Time.SaveMessage() return self.callZenScreen(REQUEST) @@ -453,7 +454,7 @@ # finish up if REQUEST: - REQUEST['message'] = "User saved at time:" + REQUEST['message'] = Time.SaveMessage() return self.callZenScreen(REQUEST) else: return user |
From: <sv...@ze...> - 2007-04-30 16:04:42
|
Author: ian Date: 2007-04-30 12:04:33 -0400 (Mon, 30 Apr 2007) New Revision: 4960 Modified: trunk/Products/ZenEvents/skins/zenevents/viewEvents.pt trunk/Products/ZenEvents/skins/zenevents/zeneventsfuncs.js trunk/Products/ZenWidgets/skins/zenui/css/tables.css trunk/Products/ZenWidgets/skins/zenui/javascript/zengrid.js Log: * Updated refresh on zengrid widget and added img and css Modified: trunk/Products/ZenEvents/skins/zenevents/viewEvents.pt =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/viewEvents.pt 2007-04-30 15:54:50 UTC (rev 4959) +++ trunk/Products/ZenEvents/skins/zenevents/viewEvents.pt 2007-04-30 16:04:33 UTC (rev 4960) @@ -49,11 +49,14 @@ selected python:st[1]==state" /> </select> - <input class="navcontrol" type="button" - name="refresh" value="Start Refresh" - onclick="startRefresh(this, this.form);"> + <input class="navcontrol" type="button" id="refreshButton" + name="refresh" + style="width:50px;background:transparent + url(img/refresh_on.png) no-repeat; + cursor:pointer;height:20px;" + onclick="eventZenGrid.turnRefreshOn($('refreshRate').value)"> <input class="tableheader" type="text" name="refreshRate" - size='2' value='60'> + id="refreshRate" size='2' value='60'> <div class="filterbox" tal:define=" tableName tableName | nothing; ts request; Modified: trunk/Products/ZenEvents/skins/zenevents/zeneventsfuncs.js =================================================================== --- trunk/Products/ZenEvents/skins/zenevents/zeneventsfuncs.js 2007-04-30 15:54:50 UTC (rev 4959) +++ trunk/Products/ZenEvents/skins/zenevents/zeneventsfuncs.js 2007-04-30 16:04:33 UTC (rev 4960) @@ -130,11 +130,9 @@ return true; }; - var startRefresh = function(button, form) { if (autoRefresh) { log("stopAutoRefresh"); - refreshControl.cancel() button.value = 'Start Refresh'; autoRefresh=0 } else { @@ -213,20 +211,6 @@ //$("dashTime").innerHTML = "<b class='errortitle'>Lost Connection to Zenoss</b>"; } -var refreshData = function() { - //logger.debuggingBookmarklet(true) - //log("loading"); - var eventsurl = eventsurl | null; - if (!eventsurl) return; - var defr = cancelWithTimeout( - loadJSONDoc(eventsurl), cancelSecs); - defr.addCallback(updateEventsListing); - defr.addErrback(updateError); - if (autoRefresh) { - callLater(refresh, refreshData, eventsurl); - } -} - var LSTimeout; var doEventLivesearch = function(field, zengrid) { filters = field.value; @@ -236,4 +220,21 @@ 500); } -addLoadEvent(refreshData) +var RefreshManager = Class.create(); +RefreshManager.prototype = { + __init__: function(time, func) { + bindMethods(this); + this.time = time; + this.func = func; + this.doRefresh(); + }, + doRefresh: function() { + this.func(); + this.current = callLater(this.time, this.doRefresh); + }, + cancelRefresh: function() { + if(this.current) this.current.cancel(); + this.current = null; + } +} + Modified: trunk/Products/ZenWidgets/skins/zenui/css/tables.css =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/css/tables.css 2007-04-30 15:54:50 UTC (rev 4959) +++ trunk/Products/ZenWidgets/skins/zenui/css/tables.css 2007-04-30 16:04:33 UTC (rev 4960) @@ -49,3 +49,8 @@ margin: 0 4px; cursor: pointer; } + +.tabletitlecontainer input.tableheader { + margin-left: 3px; + border: 1px solid darkgrey; +} Modified: trunk/Products/ZenWidgets/skins/zenui/javascript/zengrid.js =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/javascript/zengrid.js 2007-04-30 15:54:50 UTC (rev 4959) +++ trunk/Products/ZenWidgets/skins/zenui/javascript/zengrid.js 2007-04-30 16:04:33 UTC (rev 4960) @@ -60,7 +60,7 @@ this.rows = new Array(); this.updating = false; this.grid = null; - this.maxQuery = 50; + this.maxQuery = 100; this.totalRows = 0; this.numRows = 0; this.numCols = 0; @@ -219,6 +219,24 @@ connect(this.scrollbar, 'onscroll', this.handleScroll); connect(currentWindow(), 'onresize', this.resizeTable); }, + turnRefreshOn: function() { + var time = $('refreshRate').value; + this.refreshMgr = new RefreshManager(time, this.refresh); + var button = $('refreshButton'); + setStyle(button, + {'background-image':'url(img/refresh_off.png)'}); + button.onclick = this.turnRefreshOff; + button.blur(); + }, + turnRefreshOff: function() { + var button = $('refreshButton'); + this.refreshMgr.cancelRefresh(); + delete this.refreshMgr; + setStyle(button, + {'background-image':'url(img/refresh_on.png)'}); + button.onclick = this.turnRefreshOn; + button.blur(); + }, setSelectNone: function() { this.checkedArray = new Array(); var cbs = this.viewport.getElementsByTagName('input'); @@ -305,6 +323,24 @@ update(this.lastparams, params); this.refreshTable(this.lastOffset); }, + refresh: function() { + bufOffset = this.buffer.startPos; + qs = update(this.lastparams, { + 'offset':this.buffer.startPos, + 'count':this.buffer.size }); + var d = loadJSONDoc(this.url, qs); + d.addErrback(function(x) { alert('Cannot communicate with the server!') }); + d.addCallback( + bind(function(r) { + result = r; + this.buffer.totalRows = result[1]; + this.setScrollHeight(this.rowToPixel(this.buffer.totalRows)); + this.buffer.clear(); + this.buffer.update(result[0], bufOffset); + this.updateStatusBar(this.lastOffset); + this.populateTable(this.buffer.getRows(this.lastOffset, this.numRows)); + }, this)); + }, query: function(offset) { var url = this.url || 'getJSONEventsInfo'; this.lastOffset = offset; |
From: <sv...@ze...> - 2007-04-30 15:54:49
|
Author: ecn Date: 2007-04-30 11:54:50 -0400 (Mon, 30 Apr 2007) New Revision: 4959 Modified: trunk/Products/ZenModel/ZenPackLoader.py Log: * fix unknown globals Modified: trunk/Products/ZenModel/ZenPackLoader.py =================================================================== --- trunk/Products/ZenModel/ZenPackLoader.py 2007-04-30 15:54:31 UTC (rev 4958) +++ trunk/Products/ZenModel/ZenPackLoader.py 2007-04-30 15:54:50 UTC (rev 4959) @@ -139,7 +139,7 @@ def list(self, pack, app): - return [branchAfter(d, 'reports') for r in findFiles(pack, 'reports')] + return [branchAfter(r, 'reports') for r in findFiles(pack, 'reports')] class ZPLDaemons(ZenPackLoader): |
From: <sv...@ze...> - 2007-04-30 15:54:32
|
Author: ecn Date: 2007-04-30 11:54:31 -0400 (Mon, 30 Apr 2007) New Revision: 4958 Modified: trunk/Products/ZenModel/migrate/menus.py Log: * clean up copyright leftovers Modified: trunk/Products/ZenModel/migrate/menus.py =================================================================== --- trunk/Products/ZenModel/migrate/menus.py 2007-04-30 15:23:51 UTC (rev 4957) +++ trunk/Products/ZenModel/migrate/menus.py 2007-04-30 15:54:31 UTC (rev 4958) @@ -10,11 +10,6 @@ # For complete information please visit: http://www.zenoss.com/oss/ # ########################################################################### -# This program is part of Zenoss Core, an open source monitoring platform. -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 as published by -# the Free Software Foundation. -# For complete information please visit: http://www.zenoss.com/oss/ __doc__=''' |
From: <sv...@ze...> - 2007-04-30 15:23:55
|
Author: marc Date: 2007-04-30 11:23:51 -0400 (Mon, 30 Apr 2007) New Revision: 4957 Modified: trunk/Products/ZenEvents/Availability.py trunk/Products/ZenReports/reports/Performance_Reports/Availability_Report.rpt Log: #1162 * Fixed getSystemsString (old name) call to getSystemNamesString * Updated dropdown to severity names * Fixed dropdown selected attribute. Modified: trunk/Products/ZenEvents/Availability.py =================================================================== --- trunk/Products/ZenEvents/Availability.py 2007-04-30 14:57:33 UTC (rev 4956) +++ trunk/Products/ZenEvents/Availability.py 2007-04-30 15:23:51 UTC (rev 4957) @@ -171,7 +171,7 @@ for c in d.getMonitoredComponents(): if c.name().find(self.component) >= 0: a = Availability(d.id, c.name(), 0, total, - d.getSystemsString()) + d.getSystemNamesString()) result.append(a) return result Modified: trunk/Products/ZenReports/reports/Performance_Reports/Availability_Report.rpt =================================================================== --- trunk/Products/ZenReports/reports/Performance_Reports/Availability_Report.rpt 2007-04-30 14:57:33 UTC (rev 4956) +++ trunk/Products/ZenReports/reports/Performance_Reports/Availability_Report.rpt 2007-04-30 15:23:51 UTC (rev 4957) @@ -8,7 +8,7 @@ sts python:tm.setReqTableState; device python:sts(tableName, 'device', ''); component python:sts(tableName, 'component', ''); - severity python:sts(tableName, 'severity', 'Error'); + severity python:sts(tableName, 'severity', '4'); eventClass python:sts(tableName, 'eventClass', '/Status/Ping'); startDate python:sts(tableName, 'startDate', zem.defaultAvailabilityStart()); @@ -71,11 +71,11 @@ </td> <td class="tableheader">Severity:</td> <td class="tablevalues"><select class="tablevalues" name="severity"> - <option tal:repeat="sev here/dmd/ZenEventManager/severities" - tal:content="sev" + <option tal:repeat="sev here/dmd/ZenEventManager/getSeverities" + tal:content="python:sev[0]" tal:attributes=" - value sev; - selected python:sev==severity; + value python:sev[1]; + selected python:str(sev[1])==str(severity); "/> </select> </td> |
From: <sv...@ze...> - 2007-04-30 14:57:38
|
Author: jstevens Date: 2007-04-30 10:57:33 -0400 (Mon, 30 Apr 2007) New Revision: 4956 Modified: trunk/Products/ZenModel/OSProcess.py trunk/Products/ZenModel/OSProcessClass.py trunk/Products/ZenModel/OSProcessOrganizer.py trunk/Products/ZenModel/Service.py trunk/Products/ZenModel/ServiceClass.py trunk/Products/ZenModel/ServiceOrganizer.py trunk/Products/ZenModel/UserCommand.py Log: fixes #1120 * Making Process-related classes no longer subclass Commandable Modified: trunk/Products/ZenModel/OSProcess.py =================================================================== --- trunk/Products/ZenModel/OSProcess.py 2007-04-30 14:47:58 UTC (rev 4955) +++ trunk/Products/ZenModel/OSProcess.py 2007-04-30 14:57:33 UTC (rev 4956) @@ -14,7 +14,6 @@ from Globals import InitializeClass from AccessControl import ClassSecurityInfo from AccessControl import Permissions -from Commandable import Commandable from Products.ZenRelations.RelSchema import * from Acquisition import aq_chain from zExceptions import NotFound @@ -40,7 +39,7 @@ if REQUEST is not None: REQUEST['RESPONSE'].redirect(context.absolute_url()+'/manage_main') -class OSProcess(OSComponent, Commandable, ZenPackable): +class OSProcess(OSComponent, ZenPackable): """Hardware object""" portal_type = meta_type = 'OSProcess' @@ -58,7 +57,6 @@ _relations = OSComponent._relations + ZenPackable._relations + ( ("os", ToOne(ToManyCont, "Products.ZenModel.OperatingSystem", "processes")), ("osProcessClass", ToOne(ToMany, "Products.ZenModel.OSProcessClass", "instances")), - ('userCommands', ToManyCont(ToOne, 'Products.ZenModel.UserCommand', 'commandable')), ) factory_type_information = ( @@ -180,24 +178,4 @@ return self.callZenScreen(REQUEST) - def getUserCommandTargets(self): - ''' Called by Commandable.doCommand() to ascertain objects on which - a UserCommand should be executed. - ''' - return [self] - - - def getUserCommandEnvironment(self): - environ = Commandable.getUserCommandEnvironment(self) - context = self.primaryAq() - environ.update({'proc': context, 'process': context,}) - return environ - - - def getAqChainForUserCommands(self): - chain = aq_chain(self.getClassObject().primaryAq()) - chain.insert(0, self) - return chain - - InitializeClass(OSProcess) Modified: trunk/Products/ZenModel/OSProcessClass.py =================================================================== --- trunk/Products/ZenModel/OSProcessClass.py 2007-04-30 14:47:58 UTC (rev 4955) +++ trunk/Products/ZenModel/OSProcessClass.py 2007-04-30 14:57:33 UTC (rev 4956) @@ -18,7 +18,6 @@ from AccessControl import ClassSecurityInfo from AccessControl import Permissions from Acquisition import aq_base -from Commandable import Commandable from Products.ZenRelations.RelSchema import * from ZenModelRM import ZenModelRM @@ -33,7 +32,7 @@ addOSProcessClass = DTMLFile('dtml/addOSProcessClass',globals()) -class OSProcessClass(ZenModelRM, Commandable): +class OSProcessClass(ZenModelRM): meta_type = "OSProcessClass" dmdRootName = "Processes" default_catalog = "processSearch" @@ -56,7 +55,6 @@ ("instances", ToMany(ToOne, "Products.ZenModel.OSProcess", "osProcessClass")), ("osProcessOrganizer", ToOne(ToManyCont,"Products.ZenModel.OSProcessOrganizer","osProcessClasses")), - ('userCommands', ToManyCont(ToOne, 'Products.ZenModel.UserCommand', 'commandable')), ) @@ -151,18 +149,4 @@ return self.callZenScreen(REQUEST, redirect) - def getUserCommandTargets(self): - ''' Called by Commandable.doCommand() to ascertain objects on which - a UserCommand should be executed. - ''' - return self.instances() - - - def getPrimaryParentOrgName(self): - ''' Return the organizer name for the primary parent - ''' - return self.getPrimaryParent().getOrganizerName() - - - InitializeClass(OSProcessClass) Modified: trunk/Products/ZenModel/OSProcessOrganizer.py =================================================================== --- trunk/Products/ZenModel/OSProcessOrganizer.py 2007-04-30 14:47:58 UTC (rev 4955) +++ trunk/Products/ZenModel/OSProcessOrganizer.py 2007-04-30 14:57:33 UTC (rev 4956) @@ -21,7 +21,6 @@ from AccessControl import ClassSecurityInfo from AccessControl import Permissions from Acquisition import aq_base -from Commandable import Commandable from Products.ZenRelations.RelSchema import * from ZenPackable import ZenPackable @@ -38,7 +37,7 @@ addOSProcessOrganizer = DTMLFile('dtml/addOSProcessOrganizer',globals()) -class OSProcessOrganizer(Organizer, Commandable, ZenPackable): +class OSProcessOrganizer(Organizer, ZenPackable): meta_type = "OSProcessOrganizer" dmdRootName = "Processes" #default_catalog = "osprocessSearch" @@ -52,7 +51,6 @@ _relations = Organizer._relations + ZenPackable._relations + ( ("osProcessClasses", ToManyCont( ToOne,"Products.ZenModel.OSProcessClass","osProcessOrganizer")), - ('userCommands', ToManyCont(ToOne, 'Products.ZenModel.UserCommand', 'commandable')), ) factory_type_information = ( @@ -214,16 +212,4 @@ self._setProperty("zFailSeverity", 4, type="int") - def getUserCommandTargets(self): - ''' Called by Commandable.doCommand() to ascertain objects on which - a UserCommand should be executed. - ''' - targets = [] - for osc in self.osProcessClasses(): - targets += osc.getUserCommandTargets() - for org in self.children(): - targets += org.getUserCommandTargets() - return targets - - InitializeClass(OSProcessOrganizer) Modified: trunk/Products/ZenModel/Service.py =================================================================== --- trunk/Products/ZenModel/Service.py 2007-04-30 14:47:58 UTC (rev 4955) +++ trunk/Products/ZenModel/Service.py 2007-04-30 14:57:33 UTC (rev 4956) @@ -24,19 +24,17 @@ from Globals import InitializeClass from Acquisition import aq_base, aq_chain from AccessControl import ClassSecurityInfo -from Commandable import Commandable from Products.ZenRelations.RelSchema import * from OSComponent import OSComponent from ZenPackable import ZenPackable -class Service(OSComponent, Commandable, ZenPackable): +class Service(OSComponent, ZenPackable): portal_type = meta_type = 'Service' _relations = OSComponent._relations + ZenPackable._relations + ( ("serviceclass", ToOne(ToMany,"Products.ZenModel.ServiceClass","instances")), - ('userCommands', ToManyCont(ToOne, 'Products.ZenModel.UserCommand', 'commandable')), ) security = ClassSecurityInfo() @@ -111,22 +109,3 @@ REQUEST['message'] = ", ".join(msg) + ":" return self.callZenScreen(REQUEST) - - def getUserCommandTargets(self): - ''' Called by Commandable.doCommand() to ascertain objects on which - a UserCommand should be executed. - ''' - return [self] - - - def getUserCommandEnvironment(self): - environ = Commandable.getUserCommandEnvironment(self) - context = self.primaryAq() - environ.update({'serv': context, 'service': context,}) - return environ - - - def getAqChainForUserCommands(self): - chain = aq_chain(self.getClassObject().primaryAq()) - chain.insert(0, self) - return chain Modified: trunk/Products/ZenModel/ServiceClass.py =================================================================== --- trunk/Products/ZenModel/ServiceClass.py 2007-04-30 14:47:58 UTC (rev 4955) +++ trunk/Products/ZenModel/ServiceClass.py 2007-04-30 14:57:33 UTC (rev 4956) @@ -25,7 +25,6 @@ from AccessControl import ClassSecurityInfo from AccessControl import Permissions from Acquisition import aq_base -from Commandable import Commandable from ZenPackable import ZenPackable from Products.ZenRelations.RelSchema import * @@ -47,7 +46,7 @@ addServiceClass = DTMLFile('dtml/addServiceClass',globals()) -class ServiceClass(ZenModelRM, Commandable, ZenPackable): +class ServiceClass(ZenModelRM, ZenPackable): meta_type = "ServiceClass" dmdRootName = "Services" default_catalog = "serviceSearch" @@ -67,7 +66,6 @@ ("instances", ToMany(ToOne, "Products.ZenModel.Service", "serviceclass")), ("serviceorganizer", ToOne(ToManyCont,"Products.ZenModel.ServiceOrganizer","serviceclasses")), - ('userCommands', ToManyCont(ToOne, 'Products.ZenModel.UserCommand', 'commandable')), ) @@ -193,11 +191,4 @@ return self.callZenScreen(REQUEST, redirect) - def getUserCommandTargets(self): - ''' Called by Commandable.doCommand() to ascertain objects on which - a UserCommand should be executed. - ''' - return self.instances() - - InitializeClass(ServiceClass) Modified: trunk/Products/ZenModel/ServiceOrganizer.py =================================================================== --- trunk/Products/ZenModel/ServiceOrganizer.py 2007-04-30 14:47:58 UTC (rev 4955) +++ trunk/Products/ZenModel/ServiceOrganizer.py 2007-04-30 14:57:33 UTC (rev 4956) @@ -20,7 +20,6 @@ from AccessControl import ClassSecurityInfo from AccessControl import Permissions from Acquisition import aq_base -from Commandable import Commandable from ZenMenuable import ZenMenuable from ZenPackable import ZenPackable @@ -39,7 +38,7 @@ addServiceOrganizer = DTMLFile('dtml/addServiceOrganizer',globals()) -class ServiceOrganizer(Organizer, Commandable, ZenPackable): +class ServiceOrganizer(Organizer, ZenPackable): meta_type = "ServiceOrganizer" dmdRootName = "Services" default_catalog = "serviceSearch" @@ -52,7 +51,6 @@ _relations = Organizer._relations + ZenPackable._relations + ( ("serviceclasses", ToManyCont(ToOne,"Products.ZenModel.ServiceClass","serviceorganizer")), - ('userCommands', ToManyCont(ToOne, 'Products.ZenModel.UserCommand', 'commandable')), ) factory_type_information = ( @@ -216,16 +214,4 @@ zcat.addColumn('getPrimaryId') - def getUserCommandTargets(self): - ''' Called by Commandable.doCommand() to ascertain objects on which - a UserCommand should be executed. - ''' - targets = [] - for sc in self.serviceclasses(): - targets += sc.getUserCommandTargets() - for so in self.children(): - targets += so.getUserCommandTargets() - return targets - - InitializeClass(ServiceOrganizer) Modified: trunk/Products/ZenModel/UserCommand.py =================================================================== --- trunk/Products/ZenModel/UserCommand.py 2007-04-30 14:47:58 UTC (rev 4955) +++ trunk/Products/ZenModel/UserCommand.py 2007-04-30 14:57:33 UTC (rev 4956) @@ -14,15 +14,8 @@ from Globals import DTMLFile from Globals import InitializeClass from AccessControl import ClassSecurityInfo, Permissions -#from Acquisition import aq_parent from ZenModelRM import ZenModelRM from Products.ZenRelations.RelSchema import * -#from DateTime import DateTime -#from Products.PageTemplates.Expressions import getEngine -#from Products.ZenUtils.ZenTales import talesCompile -#from Products.ZenUtils.Utils import setWebLoggingStream, clearWebLoggingStream -#import logging -#log = logging.getLogger("zen.Device") manage_addUserCommand = DTMLFile('dtml/addUserCommand',globals()) |
From: <sv...@ze...> - 2007-04-30 14:48:02
|
Author: ian Date: 2007-04-30 10:47:58 -0400 (Mon, 30 Apr 2007) New Revision: 4955 Modified: trunk/Products/ZenEvents/EventManagerBase.py trunk/Products/ZenModel/EventView.py Log: * Fixed batch event actions not respecting filters Modified: trunk/Products/ZenEvents/EventManagerBase.py =================================================================== --- trunk/Products/ZenEvents/EventManagerBase.py 2007-04-30 14:41:15 UTC (rev 4954) +++ trunk/Products/ZenEvents/EventManagerBase.py 2007-04-30 14:47:58 UTC (rev 4955) @@ -273,6 +273,9 @@ def getEventBatchME(self, me, selectstatus=None, + resultFields=[], where="", orderby="", severity=None, + state=2, startdate=None, enddate=None, offset=0, rows=0, + getTotalCount=False, filter="", goodevids=[], badevids=[], **kwargs): where = self.lookupManagedEntityWhere(me) badevidsstr, goodevidsstr = '','' @@ -294,7 +297,16 @@ resultFields = kwargs['resultFields']; del kwargs['resultFields'] except KeyError: resultFields = self.lookupManagedEntityResultFields(me.event_key) - events = self.getEventList(resultFields=resultFields,where=where,**kwargs) + events = self.getEventList( + filter=filter, + offset=offset, + getTotalCount=False, + startdate=startdate, + enddate=enddate, severity=severity, + state=state, orderby=orderby, + resultFields=resultFields, + where=where,**kwargs) + print events return [ev.evid for ev in events] Modified: trunk/Products/ZenModel/EventView.py =================================================================== --- trunk/Products/ZenModel/EventView.py 2007-04-30 14:41:15 UTC (rev 4954) +++ trunk/Products/ZenModel/EventView.py 2007-04-30 14:47:58 UTC (rev 4955) @@ -115,11 +115,25 @@ #security.declareProtected('Manage Events','manage_deleteBatchEvents') def manage_deleteBatchEvents(self, selectstatus='none', goodevids=[], - badevids=[], REQUEST=None, **kwargs): + badevids=[], filter='', + offset=0, count=50, fields=[], + getTotalCount=True, + startdate=None, enddate=None, + severity=2, state=1, orderby='', + REQUEST=None, **kwargs): """Delete events form this managed entity. """ - evids = self.getEventManager().getEventBatchME(self, selectstatus, - goodevids, badevids, **kwargs) + evids = self.getEventManager().getEventBatchME(self, + selectstatus=selectstatus, + goodevids=goodevids, + badevids=badevids, + filter=filter, + offset=offset, fields=fields, + getTotalCount=getTotalCount, + startdate=startdate, + enddate=enddate, severity=severity, + state=state, orderby=orderby, + **kwargs) return self.manage_deleteEvents(evids, REQUEST) @@ -135,11 +149,25 @@ #security.declareProtected('Manage Events','manage_undeleteBatchEvents') def manage_undeleteBatchEvents(self, selectstatus='none', goodevids=[], - badevids=[], REQUEST=None, **kwargs): + badevids=[], filter='', + offset=0, count=50, fields=[], + getTotalCount=True, + startdate=None, enddate=None, + severity=2, state=1, orderby='', + REQUEST=None, **kwargs): """Delete events form this managed entity. """ - evids = self.getEventManager().getEventBatchME(self, selectstatus, - goodevids, badevids, **kwargs) + evids = self.getEventManager().getEventBatchME(self, + selectstatus=selectstatus, + goodevids=goodevids, + badevids=badevids, + filter=filter, + offset=offset, fields=fields, + getTotalCount=getTotalCount, + startdate=startdate, + enddate=enddate, severity=severity, + state=state, orderby=orderby, + **kwargs) return self.manage_undeleteEvents(evids, REQUEST) @@ -162,12 +190,26 @@ security.declareProtected('Manage Events','manage_ackBatchEvents') - def manage_ackBatchEvents(self, selectstatus='none', goodevids=[], - badevids=[], REQUEST=None, **kwargs): + def manage_ackBatchEvents(self, selectstatus='none', goodevids=[], + badevids=[], filter='', + offset=0, count=50, fields=[], + getTotalCount=True, + startdate=None, enddate=None, + severity=2, state=1, orderby='', + REQUEST=None, **kwargs): """Delete events form this managed entity. """ - evids = self.getEventManager().getEventBatchME(self, selectstatus, - goodevids, badevids, **kwargs) + evids = self.getEventManager().getEventBatchME(self, + selectstatus=selectstatus, + goodevids=goodevids, + badevids=badevids, + filter=filter, + offset=offset, fields=fields, + getTotalCount=getTotalCount, + startdate=startdate, + enddate=enddate, severity=severity, + state=state, orderby=orderby, + **kwargs) return self.manage_ackEvents(evids, REQUEST) |
From: <sv...@ze...> - 2007-04-30 14:41:13
|
Author: ecn Date: 2007-04-30 10:41:15 -0400 (Mon, 30 Apr 2007) New Revision: 4954 Modified: trunk/bin/zenrestore.py Log: * clean up copyright leftovers Modified: trunk/bin/zenrestore.py =================================================================== --- trunk/bin/zenrestore.py 2007-04-30 14:41:04 UTC (rev 4953) +++ trunk/bin/zenrestore.py 2007-04-30 14:41:15 UTC (rev 4954) @@ -11,17 +11,8 @@ # For complete information please visit: http://www.zenoss.com/oss/ # ########################################################################### -# This program is part of Zenoss Core, an open source monitoring platform. -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 as published by -# the Free Software Foundation. -# For complete information please visit: http://www.zenoss.com/oss/ -# This program is part of Zenoss Core, an open source monitoring platform. -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 as published by -# the Free Software Foundation. -# For complete information please visit: http://www.zenoss.com/oss/ + __doc__='''zenrestore Restores a zenoss backup created by zenbackup. |
From: <sv...@ze...> - 2007-04-30 14:41:05
|
Author: ecn Date: 2007-04-30 10:41:04 -0400 (Mon, 30 Apr 2007) New Revision: 4953 Modified: trunk/bin/zenfunctions Log: * sleep faster Modified: trunk/bin/zenfunctions =================================================================== --- trunk/bin/zenfunctions 2007-04-30 14:40:47 UTC (rev 4952) +++ trunk/bin/zenfunctions 2007-04-30 14:41:04 UTC (rev 4953) @@ -90,7 +90,7 @@ stop for i in 1 2 3 4 5 6 7 8 9 10 do - sleep 1 + sleep 0.24 2>/dev/null || sleep 1 test -f $PIDFILE || break done start "$@" |
From: <sv...@ze...> - 2007-04-30 14:40:46
|
Author: ecn Date: 2007-04-30 10:40:47 -0400 (Mon, 30 Apr 2007) New Revision: 4952 Modified: trunk/bin/zenbackup.py trunk/bin/zenbackupcommon.py Log: * clean up copyright leftovers Modified: trunk/bin/zenbackup.py =================================================================== --- trunk/bin/zenbackup.py 2007-04-30 14:28:19 UTC (rev 4951) +++ trunk/bin/zenbackup.py 2007-04-30 14:40:47 UTC (rev 4952) @@ -11,22 +11,8 @@ # For complete information please visit: http://www.zenoss.com/oss/ # ########################################################################### -# This program is part of Zenoss Core, an open source monitoring platform. -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 as published by -# the Free Software Foundation. -# For complete information please visit: http://www.zenoss.com/oss/ -# This program is part of Zenoss Core, an open source monitoring platform. -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 as published by -# the Free Software Foundation. -# For complete information please visit: http://www.zenoss.com/oss/ -# This program is part of Zenoss Core, an open source monitoring platform. -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 as published by -# the Free Software Foundation. -# For complete information please visit: http://www.zenoss.com/oss/ + __doc__='''zenbackup Creates backup of zope data files, zenoss conf files and the events database. Modified: trunk/bin/zenbackupcommon.py =================================================================== --- trunk/bin/zenbackupcommon.py 2007-04-30 14:28:19 UTC (rev 4951) +++ trunk/bin/zenbackupcommon.py 2007-04-30 14:40:47 UTC (rev 4952) @@ -11,17 +11,8 @@ # For complete information please visit: http://www.zenoss.com/oss/ # ########################################################################### -# This program is part of Zenoss Core, an open source monitoring platform. -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 as published by -# the Free Software Foundation. -# For complete information please visit: http://www.zenoss.com/oss/ -# This program is part of Zenoss Core, an open source monitoring platform. -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 as published by -# the Free Software Foundation. -# For complete information please visit: http://www.zenoss.com/oss/ + __doc__='''zenbackupcommon.py Common code for zenbackup.py and zenrestore.py @@ -36,3 +27,4 @@ ('dbuser', 'root', 'username'), ('dbpass', '', 'password')) + |
From: <sv...@ze...> - 2007-04-30 14:28:21
|
Author: marc Date: 2007-04-30 10:28:19 -0400 (Mon, 30 Apr 2007) New Revision: 4951 Modified: trunk/Products/ZenRRD/RenderServer.py Log: #909 * Catching and logging the exception Modified: trunk/Products/ZenRRD/RenderServer.py =================================================================== --- trunk/Products/ZenRRD/RenderServer.py 2007-04-30 13:52:53 UTC (rev 4950) +++ trunk/Products/ZenRRD/RenderServer.py 2007-04-30 14:28:19 UTC (rev 4951) @@ -278,10 +278,14 @@ return id def _loadfile(self, filename): - f = open(filename) - graph = f.read() - f.close() - return graph + try: + f = open(filename) + graph = f.read() + f.close() + return graph + except IOError: + log.info("File: %s not created yet." % filename); + return None def setupCache(self): @@ -299,7 +303,7 @@ """add graph to temporary folder""" cache = self.setupCache() graph = self._loadfile(filename) - cache.addToCache(id, graph) + if graph: cache.addToCache(id, graph) def getGraph(self, id, ftype, REQUEST): |
From: <sv...@ze...> - 2007-04-30 13:53:55
|
Author: ecn Date: 2007-04-30 09:52:53 -0400 (Mon, 30 Apr 2007) New Revision: 4950 Modified: trunk/Products/ZenHub/services/WmiConfig.py trunk/Products/ZenStatus/zenstatus.py trunk/Products/ZenWin/WinCollector.py trunk/Products/ZenWin/zeneventlog.py trunk/Products/ZenWin/zenwin.py trunk/Products/ZenWin/zenwinmodeler.py Log: #1294 fixed : async notification of device changes Modified: trunk/Products/ZenHub/services/WmiConfig.py =================================================================== --- trunk/Products/ZenHub/services/WmiConfig.py 2007-04-30 13:18:59 UTC (rev 4949) +++ trunk/Products/ZenHub/services/WmiConfig.py 2007-04-30 13:52:53 UTC (rev 4950) @@ -18,6 +18,8 @@ from Products.ZenHub.HubService import HubService from Products.DataCollector.ApplyDataMap import ApplyDataMap +from Products.ZenModel.Device import Device +from Products.ZenModel.DeviceClass import DeviceClass class WmiConfig(HubService): @@ -83,3 +85,22 @@ transaction.commit() return result + def update(self, object): + if isinstance(object, DeviceClass): + objects = object.getSubDevices() + else: + objects = [object] + for object in objects: + if not isinstance(object, Device): + return + if not object.monitorDevice(): + return + if getattr(object, 'zWmiMonitorIgnore', False): + return + for listener in self.listeners: + return listener.callRemote('notifyConfigChanged') + + def deleted(self, obj): + for listener in self.listeners: + if isinstance(obj, Device): + listener.callRemote('deleteDevice', obj.id) Modified: trunk/Products/ZenStatus/zenstatus.py =================================================================== --- trunk/Products/ZenStatus/zenstatus.py 2007-04-30 13:18:59 UTC (rev 4949) +++ trunk/Products/ZenStatus/zenstatus.py 2007-04-30 13:52:53 UTC (rev 4950) @@ -82,7 +82,7 @@ class ZenStatus(Base): - agent = "ZenStatus" + agent = "zenstatus" initialServices = ['EventService', 'StatusConfig'] statusCycleInterval = 300 configCycleInterval = 20 Modified: trunk/Products/ZenWin/WinCollector.py =================================================================== --- trunk/Products/ZenWin/WinCollector.py 2007-04-30 13:18:59 UTC (rev 4949) +++ trunk/Products/ZenWin/WinCollector.py 2007-04-30 13:52:53 UTC (rev 4950) @@ -21,7 +21,7 @@ import Globals from Products.ZenHub.PBDaemon import FakeRemote, PBDaemon as Base -from Products.ZenEvents.ZenEventClasses import Heartbeat +from Products.ZenEvents.ZenEventClasses import Heartbeat, App_Start, Clear from Products.ZenUtils.Driver import drive, driveLater from StatusTest import StatusTest @@ -39,16 +39,34 @@ attributes = ('configCycleInterval',) heartbeat = dict(eventClass=Heartbeat, - device=getfqdn(), - component='zenwin') + device=getfqdn()) deviceConfig = 'getDeviceWinInfo' def __init__(self): self.heartbeat['component'] = self.agent self.wmiprobs = [] Base.__init__(self) + self.reconfigureTimeout = None + def start(self): + self.heartbeat['component']=self.agent + self.log.info("Starting %s", self.agent) + self.sendEvent(dict(eventClass=App_Start, + summary='Starting %s' % self.agent, + device=getfqdn(), + severity=Clear, + component=self.agent)) + + def remote_notifyConfigChanged(self): + self.log.info("Async config notifiation") + if self.reconfigureTimeout and not self.reconfigureTimeout.called: + self.reconfigureTimeout.cancel() + self.reconfigureTimeout = reactor.callLater(5, drive, self.reconfigure) + + def remote_deleteDevice(self): + pass + def processLoop(self): pass @@ -64,6 +82,7 @@ self.wmiprobs = [e[0] for e in driver.next()] self.log.debug("Wmi Probs %r", self.wmiprobs) self.processLoop() + self.heartbeat['timeout'] = self.cycleInterval() * 3 self.sendEvent(self.heartbeat) except Exception, ex: self.log.exception("Error processing main loop") @@ -107,17 +126,24 @@ self.log.error(why.getErrorMessage()) + def reconfigure(self, driver): + try: + yield self.eventService().callRemote('getWmiConnIssues') + self.wmiprobs = [e[0] for e in driver.next()] + self.log.debug("Wmi Probs %r", self.wmiprobs) + yield self.configService().callRemote('getConfig') + self.updateConfig(driver.next()) + yield self.configService().callRemote(self.deviceConfig) + self.updateDevices(driver.next()) + except Exception, ex: + self.log.exception("Error fetching config") + + def startConfigCycle(self): - def doReconfigure(driver): - try: - yield self.configService().callRemote('getConfig') - self.updateConfig(driver.next()) - yield self.configService().callRemote(self.deviceConfig) - self.updateDevices(driver.next()) - except Exception, ex: - self.log.exception("Error fetching config") - driveLater(self.configCycleInterval * 60, doReconfigure) - return drive(doReconfigure) + def driveAgain(result): + driveLater(self.configCycleInterval * 60, self.reconfigure) + return result + return drive(self.reconfigure).addBoth(driveAgain) def connected(self): d = self.startConfigCycle() Modified: trunk/Products/ZenWin/zeneventlog.py =================================================================== --- trunk/Products/ZenWin/zeneventlog.py 2007-04-30 13:18:59 UTC (rev 4949) +++ trunk/Products/ZenWin/zeneventlog.py 2007-04-30 13:52:53 UTC (rev 4950) @@ -38,6 +38,7 @@ Base.__init__(self) self.devices = {} self.manager = getfqdn() + self.start() def updateDevices(self, devices): """get the config data from server""" @@ -112,7 +113,6 @@ baddevices.append(name) for name in baddevices: del self.devices[name] - self.sendEvent(self.heartbeat) gc.collect() self.log.info("Com InterfaceCount: %d", pythoncom._GetInterfaceCount()) self.log.info("Com GatewayCount: %d", pythoncom._GetGatewayCount()) Modified: trunk/Products/ZenWin/zenwin.py =================================================================== --- trunk/Products/ZenWin/zenwin.py 2007-04-30 13:18:59 UTC (rev 4949) +++ trunk/Products/ZenWin/zenwin.py 2007-04-30 13:52:53 UTC (rev 4950) @@ -52,6 +52,7 @@ self.watchers = {} self.statmsg = "Windows Service '%s' is %s" self.winCycleInterval = 60 + self.start() def mkevt(self, devname, svcname, msg, sev): "Compose an event" @@ -184,6 +185,9 @@ config.append(st) if devices: self.devices = config + + def remote_deleteDevice(self, device): + self.devices = [d for d in self.devices if d.name != device] def cycleInterval(self): return self.winCycleInterval Modified: trunk/Products/ZenWin/zenwinmodeler.py =================================================================== --- trunk/Products/ZenWin/zenwinmodeler.py 2007-04-30 13:18:59 UTC (rev 4949) +++ trunk/Products/ZenWin/zenwinmodeler.py 2007-04-30 13:52:53 UTC (rev 4950) @@ -32,12 +32,17 @@ name = agent = "zenwinmodeler" evtAlertGroup = "ServiceTest" deviceConfig = 'getDeviceWinInfo' + winmodelerCycleInterval = 20*60 attributes = Base.attributes + ('winmodelerCycleInterval',) def __init__(self): Base.__init__(self) self.devices = [] + self.start() + def remote_deleteDevice(self, device): + self.devices = [d for d in self.devices if d.name != device] + def processLoop(self): """For each device collect service info and send to server. """ |
From: <sv...@ze...> - 2007-04-30 13:19:45
|
Author: ian Date: 2007-04-30 09:18:59 -0400 (Mon, 30 Apr 2007) New Revision: 4949 Modified: trunk/Products/ZenWidgets/skins/zenui/css/tables.css Log: * Changed an ugly border in the select all/none bar Modified: trunk/Products/ZenWidgets/skins/zenui/css/tables.css =================================================================== --- trunk/Products/ZenWidgets/skins/zenui/css/tables.css 2007-04-30 12:26:54 UTC (rev 4948) +++ trunk/Products/ZenWidgets/skins/zenui/css/tables.css 2007-04-30 13:18:59 UTC (rev 4949) @@ -2,6 +2,7 @@ margin: 0px; padding: 0pt; border: 3px solid #5a6f8f; + border-top: medium none; position: relative; width: 100%; top: -3px; @@ -29,6 +30,8 @@ padding: 2px; border-left: 3px solid #5a6f8f; border-right: 3px solid #5a6f8f; + border-top: 1px solid #5a6f8f; + border-bottom: 1px solid #5a6f8f; position: relative; top: -2px; text-align: left; |
From: <sv...@ze...> - 2007-04-30 12:27:24
|
Author: ecn Date: 2007-04-30 08:26:54 -0400 (Mon, 30 Apr 2007) New Revision: 4948 Modified: trunk/Products/ZenWin/zeneventlog.py Log: * define a default for the cycle interval Modified: trunk/Products/ZenWin/zeneventlog.py =================================================================== --- trunk/Products/ZenWin/zeneventlog.py 2007-04-30 11:07:54 UTC (rev 4947) +++ trunk/Products/ZenWin/zeneventlog.py 2007-04-30 12:26:54 UTC (rev 4948) @@ -31,6 +31,7 @@ name = agent = "zeneventlog" + eventlogCycleInterval = 5*60 attributes = Base.attributes + ('eventlogCycleInterval',) def __init__(self): @@ -59,6 +60,10 @@ manager=self.manager)) + def remote_deleteDevice(self, device): + if device in self.devices: + del self.devices[device] + def getWatcher(self, name, user, passwd, minSeverity): """Setup WMI connection to monitored server. """ |
From: <sv...@ze...> - 2007-04-30 11:08:23
|
Author: ecn Date: 2007-04-30 07:07:54 -0400 (Mon, 30 Apr 2007) New Revision: 4947 Modified: trunk/Products/ZenModel/PerformanceConf.py trunk/Products/ZenModel/skins/zenmodel/editPerformanceConf.pt trunk/Products/ZenModel/skins/zenmodel/viewPerformanceConfOverview.pt Log: ping cycle stays in status conf Modified: trunk/Products/ZenModel/PerformanceConf.py =================================================================== --- trunk/Products/ZenModel/PerformanceConf.py 2007-04-30 03:26:32 UTC (rev 4946) +++ trunk/Products/ZenModel/PerformanceConf.py 2007-04-30 11:07:54 UTC (rev 4947) @@ -90,7 +90,6 @@ eventlogCycleInterval = 60 perfsnmpCycleInterval = 300 - pingCycleInterval = 60 processCycleInterval = 300 statusCycleInterval = 60 winCycleInterval = 60 @@ -114,7 +113,6 @@ _properties = ( {'id':'eventlogCycleInterval','type':'int','mode':'w'}, {'id':'perfsnmpCycleInterval','type':'int','mode':'w'}, - {'id':'pingCycleInterval','type':'int','mode':'w'}, {'id':'processCycleInterval','type':'int','mode':'w'}, {'id':'statusCycleInterval','type':'int','mode':'w'}, {'id':'winCycleInterval','type':'int','mode':'w'}, Modified: trunk/Products/ZenModel/skins/zenmodel/editPerformanceConf.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editPerformanceConf.pt 2007-04-30 03:26:32 UTC (rev 4946) +++ trunk/Products/ZenModel/skins/zenmodel/editPerformanceConf.pt 2007-04-30 11:07:54 UTC (rev 4947) @@ -38,13 +38,6 @@ </td> </tr> <tr> - <td class="tableheader">Ping Cycle Interval (secs)</td> - <td class="tablevalues"> - <input class="tablevalues" type="text" name="pingCycleInterval:int" - size="10" tal:attributes="value here/pingCycleInterval"/> - </td> - </tr> - <tr> <td class="tableheader">Process Cycle Interval (secs)</td> <td class="tablevalues"> <input class="tablevalues" type="text" name="processCycleInterval:int" Modified: trunk/Products/ZenModel/skins/zenmodel/viewPerformanceConfOverview.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/viewPerformanceConfOverview.pt 2007-04-30 03:26:32 UTC (rev 4946) +++ trunk/Products/ZenModel/skins/zenmodel/viewPerformanceConfOverview.pt 2007-04-30 11:07:54 UTC (rev 4947) @@ -29,10 +29,6 @@ <td class="tablevalues" tal:content="here/perfsnmpCycleInterval" /> </tr> <tr> - <td class="tableheader">Ping Cycle Interval (secs)</td> - <td class="tablevalues" tal:content="here/pingCycleInterval" /> - </tr> - <tr> <td class="tableheader">Process Cycle Interval (secs)</td> <td class="tablevalues" tal:content="here/processCycleInterval" /> </tr> |
From: <sv...@ze...> - 2007-04-30 03:26:32
|
Author: jstevens Date: 2007-04-29 23:26:32 -0400 (Sun, 29 Apr 2007) New Revision: 4946 Modified: trunk/Products/ZenModel/ZenPack.py trunk/Products/ZenModel/ZenPackLoader.py trunk/Products/ZenUtils/zenpack.py Log: fixes #1335 * fixes --list to show reports properly. * zenpack --list now also shows datasources and libs Modified: trunk/Products/ZenModel/ZenPack.py =================================================================== --- trunk/Products/ZenModel/ZenPack.py 2007-04-30 02:55:35 UTC (rev 4945) +++ trunk/Products/ZenModel/ZenPack.py 2007-04-30 03:26:32 UTC (rev 4946) @@ -180,7 +180,8 @@ ) zope.interface.implements(interfaces.IZenPack) - loaders = (ZPLObject(), ZPLReport(), ZPLDaemons(), ZPLSkins()) + loaders = (ZPLObject(), ZPLReport(), ZPLDaemons(), ZPLSkins(), + ZPLDataSources(), ZPLLibraries()) def __init__(self, id): ZenPack.__init__(self, id) Modified: trunk/Products/ZenModel/ZenPackLoader.py =================================================================== --- trunk/Products/ZenModel/ZenPackLoader.py 2007-04-30 02:55:35 UTC (rev 4945) +++ trunk/Products/ZenModel/ZenPackLoader.py 2007-04-30 03:26:32 UTC (rev 4946) @@ -137,6 +137,11 @@ rl.options.force = True rl.loadDirectory(pack.path('reports')) + + def list(self, pack, app): + return [branchAfter(d, 'reports') for r in findFiles(pack, 'reports')] + + class ZPLDaemons(ZenPackLoader): name = "Daemons" @@ -190,3 +195,26 @@ def list(self, pack, app): return [branchAfter(d, 'skins') for d in findDirectories(pack, 'skins')] + + +class ZPLDataSources(ZenPackLoader): + + name = "DataSources" + + + def list(self, pack, app): + return [branchAfter(d, 'datasources') + for d in findFiles(pack, 'datasources', + lambda f: not f.endswith('.pyc') and f != '__init__.py')] + + +class ZPLLibraries(ZenPackLoader): + + name = "Libraries" + + + def list(self, pack, app): + d = pack.path('lib') + if os.path.isdir(d): + return [l for l in os.listdir(d)] + return [] Modified: trunk/Products/ZenUtils/zenpack.py =================================================================== --- trunk/Products/ZenUtils/zenpack.py 2007-04-30 02:55:35 UTC (rev 4945) +++ trunk/Products/ZenUtils/zenpack.py 2007-04-30 03:26:32 UTC (rev 4946) @@ -28,12 +28,15 @@ if self.options.installPackName: self.install(self.extract(self.options.installPackName)) - if self.options.removePackName: + elif self.options.removePackName: self.remove(self.options.removePackName) - if self.options.list: + elif self.options.list: for zp in self.dmd.packs(): - print '%s (%s)' % (zp.id, sys.modules[zp.__module__].__file__) + f = sys.modules[zp.__module__].__file__ + if f.endswith('.pyc'): + f = f[:-1] + print '%s (%s)' % (zp.id, f) for extensionType, lst in zp.list(self.app): print ' %s:' % extensionType for item in lst: |