[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" />
-          &nbsp;<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" />
-          &nbsp;
-          <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