[Checkins] SVN: zamplugin.control/trunk/ Move sample configuration
from buildout.cfg to app.zcml
Roger Ineichen
roger at projekt01.ch
Sun Apr 13 18:00:15 EDT 2008
Log message for revision 85338:
Move sample configuration from buildout.cfg to app.zcml
Removed server control since this is broken in Zope 3
Removed menu item for server control
Removed svn:externals since we have eggs
Changed:
U zamplugin.control/trunk/CHANGES.txt
U zamplugin.control/trunk/README.txt
U zamplugin.control/trunk/buildout.cfg
D zamplugin.control/trunk/externals/
U zamplugin.control/trunk/setup.py
U zamplugin.control/trunk/src/zamplugin/control/README.txt
A zamplugin.control/trunk/src/zamplugin/control/app.zcml
U zamplugin.control/trunk/src/zamplugin/control/browser/configure.zcml
D zamplugin.control/trunk/src/zamplugin/control/browser/servercontrol.pt
D zamplugin.control/trunk/src/zamplugin/control/browser/servercontrol.py
U zamplugin.control/trunk/src/zamplugin/control/configure.zcml
U zamplugin.control/trunk/src/zamplugin/control/ftesting.zcml
U zamplugin.control/trunk/src/zamplugin/control/menu.py
U zamplugin.control/trunk/src/zamplugin/control/menu.zcml
-=-
Modified: zamplugin.control/trunk/CHANGES.txt
===================================================================
--- zamplugin.control/trunk/CHANGES.txt 2008-04-13 18:57:32 UTC (rev 85337)
+++ zamplugin.control/trunk/CHANGES.txt 2008-04-13 22:00:15 UTC (rev 85338)
@@ -2,7 +2,7 @@
CHANGES
=======
-Version 0.5.0 (unreleased)
+Version 0.5.0 (2008-04-13)
-------------------------
- Initial Release
Modified: zamplugin.control/trunk/README.txt
===================================================================
--- zamplugin.control/trunk/README.txt 2008-04-13 18:57:32 UTC (rev 85337)
+++ zamplugin.control/trunk/README.txt 2008-04-13 22:00:15 UTC (rev 85338)
@@ -1 +1,2 @@
-This package provides server control for ZAM (Zope 3 Application Management).
+This package provides different server control views for ZAM (Zope 3
+Application Management).
Modified: zamplugin.control/trunk/buildout.cfg
===================================================================
--- zamplugin.control/trunk/buildout.cfg 2008-04-13 18:57:32 UTC (rev 85337)
+++ zamplugin.control/trunk/buildout.cfg 2008-04-13 22:00:15 UTC (rev 85338)
@@ -1,15 +1,12 @@
[buildout]
develop = .
- externals/z3c.menu.ready2go
- externals/zam.api
- externals/zam.skin
-
-parts = logs app test checker coverage
+parts = logs app test checker coverage-test coverage-report
[test]
recipe = zc.recipe.testrunner
-eggs = zamplugin.control [app, test]
+eggs = zam.skin [app]
+ zamplugin.control [test]
[checker]
@@ -17,9 +14,17 @@
path = src/zamplugin/control
-[coverage]
+[coverage-test]
+recipe = zc.recipe.testrunner
+eggs = zamplugin.control [test]
+defaults = ['--coverage', '../../coverage']
+
+
+[coverage-report]
recipe = zc.recipe.egg
eggs = z3c.coverage
+scripts = coverage=coverage-report
+arguments = ('coverage', 'coverage/report')
[logs]
@@ -29,7 +34,8 @@
[app]
recipe = z3c.recipe.dev:app
-eggs = zamplugin.control [app]
+eggs = zam.skin [app]
+ zamplugin.control
server = zserver
zope.conf =
${var:zconfig}
@@ -75,15 +81,9 @@
<!-- use app configuration from zam.api -->
<include package="zam.skin" file="app.zcml" />
- <!-- exclude will prevent from include -->
- <exclude package="zope.app.applicationcontrol.browser" />
+ <!-- use app configuration from zamplugin.control -->
+ <include package="zamplugin.control" file="app.zcml" />
- <!-- zope app package configuration -->
- <include package="zope.app.applicationcontrol" />
-
- <!-- zam skin configuration -->
- <include package="zamplugin.control" />
-
<!-- load other zcml files -->
<include file="securitypolicy.zcml" />
<include file="principals.zcml" />
Modified: zamplugin.control/trunk/setup.py
===================================================================
--- zamplugin.control/trunk/setup.py 2008-04-13 18:57:32 UTC (rev 85337)
+++ zamplugin.control/trunk/setup.py 2008-04-13 22:00:15 UTC (rev 85338)
@@ -56,35 +56,11 @@
'zope.app.testing',
'zope.testbrowser',
],
- app = [
- 'z3c.baseregistry',
- 'z3c.form',
- 'z3c.formui',
- 'z3c.layer.pagelet',
- 'z3c.layer.ready2go',
- 'z3c.menu.ready2go',
- 'z3c.pagelet',
- 'z3c.zrtresource',
- 'zam.api',
- 'zam.skin',
- 'zc.configuration',
- 'zope.app.component',
- 'zope.app.http',
- 'zope.app.intid',
- 'zope.app.publisher',
- 'zope.app.securitypolicy',
- 'zope.app.server',
- 'zope.app.twisted',
- 'zope.configuration',
- 'zope.interface',
- 'zope.publisher',
- 'zope.traversing',
- 'zope.viewlet',
- ],
),
install_requires = [
'setuptools',
'z3c.baseregistry',
+ 'z3c.menu.ready2go',
'z3c.pagelet',
'z3c.template',
'zam.api',
Modified: zamplugin.control/trunk/src/zamplugin/control/README.txt
===================================================================
--- zamplugin.control/trunk/src/zamplugin/control/README.txt 2008-04-13 18:57:32 UTC (rev 85337)
+++ zamplugin.control/trunk/src/zamplugin/control/README.txt 2008-04-13 22:00:15 UTC (rev 85338)
@@ -5,19 +5,180 @@
This package provides the server control management. The zam.skin is used as
basic skin for this test.
-Login as manager first:
+First login as manager:
>>> from zope.testbrowser.testing import Browser
- >>> manager = Browser()
- >>> manager.addHeader('Authorization', 'Basic mgr:mgrpw')
+ >>> mgr = Browser()
+ >>> mgr.addHeader('Authorization', 'Basic mgr:mgrpw')
-Check if we can access the page.html view which is registred in the
-ftesting.zcml file for the ``ZAM`` skin:
+Check if we can access the management namespace without the installed plugin:
- >>> manager = Browser()
- >>> manager.handleErrors = False
- >>> manager.addHeader('Authorization', 'Basic mgr:mgrpw')
- >>> skinURL = 'http://localhost/++skin++ZAM/index.html'
- >>> manager.open(skinURL)
- >>> manager.url
- 'http://localhost/++skin++ZAM/index.html'
+ >>> mgr = Browser()
+ >>> mgr.handleErrors = False
+ >>> mgr.addHeader('Authorization', 'Basic mgr:mgrpw')
+ >>> rootURL = 'http://localhost/++skin++ZAM'
+ >>> mgr.open(rootURL + '/++etc++ApplicationController')
+ >>> mgr.url
+ 'http://localhost/++skin++ZAM/++etc++ApplicationController'
+
+As you can see there is no real page available only the default one from the
+skin configuration which shows the following message:
+
+ >>> 'There is no index.html page registered for this object' in mgr.contents
+ True
+
+Go to the plugins page at the site root:
+
+ >>> mgr.open(rootURL + '/plugins.html')
+ >>> mgr.url
+ 'http://localhost/++skin++ZAM/plugins.html'
+
+and install the contents plugins:
+
+ >>> mgr.getControl(name='zamplugin.control.buttons.install').click()
+ >>> print mgr.contents
+ <!DOCTYPE ...
+ ...
+ <div id="content">
+ <form action="./plugins.html" method="post" enctype="multipart/form-data" class="plugin-form">
+ <h1>ZAM Plugin Management</h1>
+ <fieldset id="pluginManagement">
+ <strong class="installedPlugin">Server control plugin</strong>
+ <div class="description">ZAM Control plugin.</div>
+ ...
+
+Now you can see there is management namespace at the site root:
+
+ >>> mgr.open(rootURL + '/++etc++ApplicationController')
+ >>> print mgr.contents
+ <!DOCTYPE ...
+ ...
+ <div id="content">
+ <div class="row">
+ <div class="label">Uptime</div>
+ ...
+ </div>
+ <div class="row">
+ <div class="label">System platform</div>
+ ...
+ </div>
+ <div class="row">
+ <div class="label">Zope version</div>
+ ...
+ </div>
+ <div class="row">
+ <div class="label">Python version</div>
+ ...
+ </div>
+ <div class="row">
+ <div class="label">Command line</div>
+ ...
+ <div class="row">
+ <div class="label">Preferred encoding</div>
+ ...
+ </div>
+ <div class="row">
+ <div class="label">FileSystem encoding</div>
+ ...
+ </div>
+ <div class="row">
+ <div class="label">Process id</div>
+ ...
+ </div>
+ <div class="row">
+ <div class="label">Developer mode</div>
+ <div class="field">On</div>
+ </div>
+ <div class="row">
+ <div class="label">Python path</div>
+ ...
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </body>
+ </html>
+
+
+The ZODB control page allows you to pack the Database and shows the current
+database size:
+
+ >>> mgr.open(rootURL + '/++etc++ApplicationController/ZODBControl.html')
+ >>> print mgr.contents
+ <!DOCTYPE ...
+ ...
+ <div>
+ <form action="http://localhost/++skin++ZAM/++etc++ApplicationController/ZODBControl.html"
+ method="post">
+ <div class="row">
+ <table border="1">
+ <tr>
+ <th>Pack</th>
+ <th>Utility Name</th>
+ <th>Database Name</th>
+ <th>Size</th>
+ </tr>
+ <tr>
+ <td>
+ <input type="checkbox" name="dbs:list"
+ value="unnamed" />
+ </td>
+ <td>
+ unnamed
+ </td>
+ <td>
+ Demo storage 'unnamed'
+ </td>
+ <td>
+ 2 KB
+ </td>
+ </tr>
+ </table>
+ <div class="row">
+ <span class="label">Keep up to</span>
+ <span class="field">
+ <input type="text" size="4" name="days" value="0" />
+ days
+ </span>
+ <div class="controls">
+ <input type="submit" name="PACK" value="Pack" />
+ </div>
+ </div>
+ </div>
+ </form>
+ </div>
+ ...
+
+The generation page shows you pending generations and will list already
+processed generation steps:
+
+ >>> mgr.open(rootURL + '/++etc++ApplicationController/generations.html')
+ >>> print mgr.contents
+ <!DOCTYPE ...
+ ...
+ <div id="content">
+ <span>Database generations</span>
+ <form action="http://localhost/++skin++ZAM/++etc++ApplicationController/generations.html">
+ <table border="1">
+ <tr>
+ <th>Application</th>
+ <th>Minimum Generation</th>
+ <th>Maximum Generation</th>
+ <th>Current Database Generation</th>
+ <th>Evolve?</th>
+ </tr>
+ <tr>
+ <td>
+ <a href="generationDetails.html?id=zope.app">zope.app</a>
+ </td>
+ <td>1</td>
+ <td>5</td>
+ <td>5</td>
+ <td>
+ <span>No, up to date</span>
+ </td>
+ </tr>
+ </table>
+ </form>
+ ...
Added: zamplugin.control/trunk/src/zamplugin/control/app.zcml
===================================================================
--- zamplugin.control/trunk/src/zamplugin/control/app.zcml (rev 0)
+++ zamplugin.control/trunk/src/zamplugin/control/app.zcml 2008-04-13 22:00:15 UTC (rev 85338)
@@ -0,0 +1,21 @@
+<configure
+ xmlns:meta="http://namespaces.zope.org/meta"
+ xmlns="http://namespaces.zope.org/zope"
+ i18n_domain="zope">
+
+ <!-- load meta configuration for exclude -->
+ <include package="zc.configuration" file="meta.zcml" />
+
+ <!-- use app configuration from zam.api -->
+ <include package="zam.skin" file="app.zcml" />
+
+ <!-- exclude will prevent from include -->
+ <exclude package="zope.app.applicationcontrol.browser" />
+
+ <!-- zope app package configuration -->
+ <include package="zope.app.applicationcontrol" />
+
+ <!-- zam skin configuration -->
+ <include package="zamplugin.control" />
+
+</configure>
Property changes on: zamplugin.control/trunk/src/zamplugin/control/app.zcml
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: zamplugin.control/trunk/src/zamplugin/control/browser/configure.zcml
===================================================================
--- zamplugin.control/trunk/src/zamplugin/control/browser/configure.zcml 2008-04-13 18:57:32 UTC (rev 85337)
+++ zamplugin.control/trunk/src/zamplugin/control/browser/configure.zcml 2008-04-13 22:00:15 UTC (rev 85338)
@@ -19,22 +19,6 @@
/>
- <!-- Server control -->
- <z3c:pagelet
- name="servercontrol.html"
- for="zope.app.applicationcontrol.interfaces.IApplicationControl"
- class=".servercontrol.ServerControl"
- permission="zope.ManageApplication"
- layer="zam.api.layer.IControlPluginLayer"
- />
-
- <z3c:template
- for=".servercontrol.ServerControl"
- template="servercontrol.pt"
- layer="zam.api.layer.IControlPluginLayer"
- />
-
-
<!-- ZODB control -->
<z3c:pagelet
name="ZODBControl.html"
Deleted: zamplugin.control/trunk/src/zamplugin/control/browser/servercontrol.pt
===================================================================
--- zamplugin.control/trunk/src/zamplugin/control/browser/servercontrol.pt 2008-04-13 18:57:32 UTC (rev 85337)
+++ zamplugin.control/trunk/src/zamplugin/control/browser/servercontrol.pt 2008-04-13 22:00:15 UTC (rev 85338)
@@ -1,31 +0,0 @@
-<div class="message"
- i18n:translate=""
- tal:define="status view/action"
- tal:condition="status"
- tal:content="status">
- </div>
-
-<form name="servercontrol" action="servercontrol.html" method="post">
- <div class="row">
- <div class="label"
- i18n:translate="">Countdown until restart or shutdown</div>
- <div class="field">
- <input type="text" name="time:int" size="5" value="0" />
- <span i18n:translate="">seconds</span>
- <p i18n:translate="">
- If you specify a time of 0 seconds, then the server
- will be shutdown or restarted immediately.
- </p>
- </div>
- </div>
-
- <div class="row">
- <div class="controls">
- <input type="submit" name="restart" value="Restart server"
- i18n:attributes="value" />
-
- <input type="submit" name="shutdown" value="Shutdown server"
- i18n:attributes="value" />
- </div>
- </div>
-</form>
Deleted: zamplugin.control/trunk/src/zamplugin/control/browser/servercontrol.py
===================================================================
--- zamplugin.control/trunk/src/zamplugin/control/browser/servercontrol.py 2008-04-13 18:57:32 UTC (rev 85337)
+++ zamplugin.control/trunk/src/zamplugin/control/browser/servercontrol.py 2008-04-13 22:00:15 UTC (rev 85338)
@@ -1,47 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""Server Control View
-
-$Id: servercontrol.py 73536 2007-03-25 08:17:24Z dobe $
-"""
-__docformat__ = 'restructuredtext'
-
-import zope.component
-from zope.app.applicationcontrol.interfaces import IServerControl
-from zope.app.applicationcontrol.i18n import ZopeMessageFactory as _
-
-from z3c.pagelet import browser
-from z3c.template.template import getPageTemplate
-
-
-class ServerControl(browser.BrowserPagelet):
-
- template = getPageTemplate()
-
- def serverControl(self):
- return zope.component.getUtility(IServerControl)
-
- def action(self):
- """Do the shutdown/restart!"""
- control = self.serverControl()
- time = self.request.get('time', 0)
-
- if 'restart' in self.request:
- control.restart(time)
- return _("The server will be restarted in ${number} seconds.",
- mapping={"number": time})
- elif 'shutdown' in self.request:
- control.shutdown(time)
- return _("The server will be shutdown in ${number} seconds.",
- mapping={"number": time})
Modified: zamplugin.control/trunk/src/zamplugin/control/configure.zcml
===================================================================
--- zamplugin.control/trunk/src/zamplugin/control/configure.zcml 2008-04-13 18:57:32 UTC (rev 85337)
+++ zamplugin.control/trunk/src/zamplugin/control/configure.zcml 2008-04-13 22:00:15 UTC (rev 85338)
@@ -13,7 +13,8 @@
provides="zam.api.interfaces.IPluginManagement"
/>
- <!-- make sure we bootstrap the evolver -->
+ <!-- make sure we bootstrap the evolver even if the plugin is not installed.
+ This allows us to bootstrap important automatic evolvers -->
<include package="zope.app.generations" file="subscriber.zcml" />
<registerIn registry="zamplugin.control.plugin.ControlBaseRegistry">
Modified: zamplugin.control/trunk/src/zamplugin/control/ftesting.zcml
===================================================================
--- zamplugin.control/trunk/src/zamplugin/control/ftesting.zcml 2008-04-13 18:57:32 UTC (rev 85337)
+++ zamplugin.control/trunk/src/zamplugin/control/ftesting.zcml 2008-04-13 22:00:15 UTC (rev 85338)
@@ -1,19 +1,15 @@
<configure
+ xmlns:meta="http://namespaces.zope.org/meta"
xmlns="http://namespaces.zope.org/zope"
- xmlns:browser="http://namespaces.zope.org/browser"
- xmlns:z3c="http://namespaces.zope.org/z3c"
i18n_domain="zope">
+ <!-- Turn on the devmode -->
+ <meta:provides feature="devmode" />
+
<!-- use ftesting configuration from zam.api -->
<include package="zam.skin" file="ftesting.zcml" />
- <!-- exclude will prevent from include -->
- <exclude package="zope.app.applicationcontrol.browser" />
+ <!-- load app configuration -->
+ <include package="zamplugin.control" file="app.zcml" />
- <!-- zope app package configuration -->
- <include package="zope.app.applicationcontrol" />
-
- <!-- zam skin configuration -->
- <include package="zamplugin.control" />
-
</configure>
Modified: zamplugin.control/trunk/src/zamplugin/control/menu.py
===================================================================
--- zamplugin.control/trunk/src/zamplugin/control/menu.py 2008-04-13 18:57:32 UTC (rev 85337)
+++ zamplugin.control/trunk/src/zamplugin/control/menu.py 2008-04-13 22:00:15 UTC (rev 85338)
@@ -16,7 +16,6 @@
"""
__docformat__ = "reStructuredText"
-import zope.component
from zope.traversing.api import getRoot
from zope.app.applicationcontrol.interfaces import IApplicationControl
@@ -59,22 +58,15 @@
weight = 1
-class ServerControlMenuItem(AppControlContextMenuItem):
- """Server control menu item."""
-
- viewName = 'servercontrol.html'
- weight = 2
-
-
class ZODBControlMenuItem(AppControlContextMenuItem):
"""ZODB control menu item."""
viewName = 'ZODBControl.html'
- weight = 3
+ weight = 2
class GenerationsMenuItem(AppControlContextMenuItem):
"""Generation management menu item."""
viewName = 'generations.html'
- weight = 4
+ weight = 3
Modified: zamplugin.control/trunk/src/zamplugin/control/menu.zcml
===================================================================
--- zamplugin.control/trunk/src/zamplugin/control/menu.zcml 2008-04-13 18:57:32 UTC (rev 85337)
+++ zamplugin.control/trunk/src/zamplugin/control/menu.zcml 2008-04-13 22:00:15 UTC (rev 85338)
@@ -23,15 +23,6 @@
/>
<viewlet
- name="Server control"
- for="zope.app.applicationcontrol.interfaces.IApplicationControl"
- class=".menu.ServerControlMenuItem"
- manager="zam.api.menu.IContextMenu"
- layer="zam.api.layer.IControlPluginLayer"
- permission="zope.ManageServices"
- />
-
- <viewlet
name="ZODB Control"
for="zope.app.applicationcontrol.interfaces.IApplicationControl"
class=".menu.ZODBControlMenuItem"
More information about the Checkins
mailing list