Merge lp:~sinzui/launchpad/launchapd-apocalypse-1 into lp:launchpad

Proposed by Curtis Hovey
Status: Merged
Approved by: Jeroen T. Vermeulen
Approved revision: not available
Merged at revision: not available
Proposed branch: lp:~sinzui/launchpad/launchapd-apocalypse-1
Merge into: lp:launchpad
Diff against target: 1378 lines (+397/-347)
37 files modified
cronscripts/process-hwdb-submissions.py (+1/-1)
lib/canonical/launchpad/browser/__init__.py (+1/-1)
lib/canonical/launchpad/browser/launchpad.py (+1/-1)
lib/canonical/launchpad/configure.zcml (+2/-0)
lib/canonical/launchpad/ftests/test_system_documentation.py (+0/-10)
lib/canonical/launchpad/interfaces/__init__.py (+1/-1)
lib/canonical/launchpad/interfaces/_schema_circular_imports.py (+1/-1)
lib/canonical/launchpad/scripts/garbo.py (+2/-2)
lib/canonical/launchpad/scripts/tests/test_hwdb_submission_parser.py (+1/-1)
lib/canonical/launchpad/scripts/tests/test_hwdb_submission_processing.py (+2/-2)
lib/canonical/launchpad/security.py (+1/-1)
lib/canonical/launchpad/systemhomes.py (+1/-1)
lib/canonical/launchpad/zcml/configure.zcml (+0/-1)
lib/canonical/launchpad/zcml/hwdb.zcml (+0/-276)
lib/lp/bugs/browser/bugtarget.py (+3/-1)
lib/lp/bugs/doc/bug.txt (+1/-1)
lib/lp/bugs/doc/bugtask-search.txt (+2/-2)
lib/lp/bugs/model/bug.py (+5/-10)
lib/lp/bugs/model/bugtask.py (+1/-1)
lib/lp/bugs/tests/test_bugtask.py (+1/-1)
lib/lp/hardwaredb/browser/configure.zcml (+71/-0)
lib/lp/hardwaredb/browser/hwdb.py (+1/-1)
lib/lp/hardwaredb/browser/tests/test_views.py (+39/-0)
lib/lp/hardwaredb/configure.zcml (+190/-0)
lib/lp/hardwaredb/doc/hwdb-access.txt (+5/-5)
lib/lp/hardwaredb/doc/hwdb-device-tables.txt (+3/-3)
lib/lp/hardwaredb/doc/hwdb-submission.txt (+3/-3)
lib/lp/hardwaredb/doc/hwdb.txt (+8/-8)
lib/lp/hardwaredb/model/hwdb.py (+1/-1)
lib/lp/hardwaredb/scripts/hwdbsubmissions.py (+1/-1)
lib/lp/hardwaredb/scripts/tests/test_hwdb_submission_validation.py (+1/-1)
lib/lp/hardwaredb/stories/webservice/xx-hwdb.txt (+1/-1)
lib/lp/hardwaredb/tests/test_doc.py (+36/-0)
lib/lp/registry/model/person.py (+1/-1)
lib/lp/scripts/utilities/sanitizedb.py (+3/-4)
lib/lp/testing/factory.py (+1/-1)
utilities/migrater/migrater.py (+5/-2)
To merge this branch: bzr merge lp:~sinzui/launchpad/launchapd-apocalypse-1
Reviewer Review Type Date Requested Status
Jeroen T. Vermeulen (community) code Approve
Edwin Grubbs code Pending
Abel Deuring Pending
Review via email: mp+18462@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Curtis Hovey (sinzui) wrote :
Download full text (3.5 KiB)

This is my branch to move the hwdb to lp, the first of many branches to
complete the lp code migration.

    reviewer: adeuring

    lp:~sinzui/launchpad/launchapd-apocalypse-1
    Diff size: 1381
    Launchpad bug: https://bugs.launchpad.net/bugs/launchapd-apocalypse-1
    Test command: ./bin/test -vv -t hardwaredb.* -t bugs.*doc/bug.txt
    Pre-implementation: deryck
    Target release: 10.02

Move the hwdb to lp
-------------------

Use the migrater script to move the hwdb classes to the new lp.hardwaredb.

Rules
-----

    * Use the migrater to move the hwdb to the lp tree.
    * Hush lint if it complains.

QA
--

As this is a refactoring, a few sport checks are needed to verify that
the feature is fine:

    * View https://edge.launchpad.net/~sinzui/+hwdb-submissions
    * Verify the page lists.
    * Verify the system link works.

Lint
----

Linting changed files:
  cronscripts/process-hwdb-submissions.py
  lib/canonical/launchpad/configure.zcml
  lib/canonical/launchpad/security.py
  lib/canonical/launchpad/systemhomes.py
  lib/canonical/launchpad/browser/__init__.py
  lib/canonical/launchpad/browser/launchpad.py
  lib/canonical/launchpad/ftests/test_system_documentation.py
  lib/canonical/launchpad/interfaces/__init__.py
  lib/canonical/launchpad/interfaces/_schema_circular_imports.py
  lib/canonical/launchpad/scripts/garbo.py
  lib/canonical/launchpad/scripts/tests/test_hwdb_submission_parser.py
  lib/canonical/launchpad/scripts/tests/test_hwdb_submission_processing.py
  lib/canonical/launchpad/zcml/configure.zcml
  lib/lp/hardwaredb/
  lib/lp/bugs/browser/bugtarget.py
  lib/lp/bugs/doc/bug.txt
  lib/lp/bugs/doc/bugtask-search.txt
  lib/lp/bugs/model/bug.py
  lib/lp/bugs/model/bugtask.py
  lib/lp/bugs/tests/test_bugtask.py
  lib/lp/hardwaredb/__init__.py
  lib/lp/hardwaredb/browser/
  lib/lp/hardwaredb/configure.zcml
  lib/lp/hardwaredb/doc/
  lib/lp/hardwaredb/interfaces/
  lib/lp/hardwaredb/model/
  lib/lp/hardwaredb/scripts/
  lib/lp/hardwaredb/stories/
  lib/lp/hardwaredb/templates/
  lib/lp/hardwaredb/tests/
  lib/lp/hardwaredb/browser/__init__.py
  lib/lp/hardwaredb/browser/configure.zcml
  lib/lp/hardwaredb/browser/hwdb.py
  lib/lp/hardwaredb/browser/tests/
  lib/lp/hardwaredb/browser/tests/__init__.py
  lib/lp/hardwaredb/browser/tests/test_views.py
  lib/lp/hardwaredb/doc/__init__.py
  lib/lp/hardwaredb/doc/hwdb-access.txt
  lib/lp/hardwaredb/doc/hwdb-device-tables.txt
  lib/lp/hardwaredb/doc/hwdb-submission.txt
  lib/lp/hardwaredb/doc/hwdb.txt
  lib/lp/hardwaredb/interfaces/__init__.py
  lib/lp/hardwaredb/model/__init__.py
  lib/lp/hardwaredb/model/hwdb.py
  lib/lp/hardwaredb/scripts/__init__.py
  lib/lp/hardwaredb/scripts/hwdbsubmissions.py
  lib/lp/hardwaredb/scripts/tests/
  lib/lp/hardwaredb/scripts/tests/test_hwdb_submission_validation.py
  lib/lp/hardwaredb/stories/__init__.py
  lib/lp/hardwaredb/stories/hwdb/
  lib/lp/hardwaredb/stories/webservice/
  lib/lp/hardwaredb/stories/webservice/xx-hwdb.txt
  lib/lp/hardwaredb/templates/__init__.py
  lib/lp/hardwaredb/tests/__init__.py
  lib/lp/hardwaredb/tests/test_doc.py
  lib/lp/registry/model/person.py
  lib/lp/scripts/utilities/sanitizedb.py
  lib/lp/testing/factory.p...

Read more...

Revision history for this message
Curtis Hovey (sinzui) wrote :

Hi Edwin.

Can you review this for me? I have doubts that my use of "hardwaredb" is good. I wanted a clear term for the module, but all other uses are "hwdb". I think I should rename it to "hwdb" to be consistent.

Revision history for this message
Jeroen T. Vermeulen (jtv) wrote :

Thanks for your continued effort to push our codebase forward! Lots of little drive-bys in addition to mechanical changes.

Two minor things we discussed on IRC:
 * Trailing comma at the end of an arguments list.
 * A "try: ... except: pass" block in the migrater may or may not be removed, but needs at least an explanation to help the next coder who hits problems there. Either way is alright with me in this case.

Jeroen

review: Approve
Revision history for this message
Jeroen T. Vermeulen (jtv) :
review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'cronscripts/process-hwdb-submissions.py'
--- cronscripts/process-hwdb-submissions.py 2009-10-13 14:38:07 +0000
+++ cronscripts/process-hwdb-submissions.py 2010-02-10 23:32:22 +0000
@@ -24,7 +24,7 @@
24import _pythonpath24import _pythonpath
2525
26from lp.services.scripts.base import LaunchpadCronScript26from lp.services.scripts.base import LaunchpadCronScript
27from canonical.launchpad.scripts.hwdbsubmissions import (27from lp.hardwaredb.scripts.hwdbsubmissions import (
28 process_pending_submissions)28 process_pending_submissions)
2929
3030
3131
=== modified file 'lib/canonical/launchpad/browser/__init__.py'
--- lib/canonical/launchpad/browser/__init__.py 2009-10-22 22:14:48 +0000
+++ lib/canonical/launchpad/browser/__init__.py 2010-02-10 23:32:22 +0000
@@ -37,7 +37,7 @@
37from lp.answers.browser.faqtarget import *37from lp.answers.browser.faqtarget import *
38from lp.registry.browser.featuredproject import *38from lp.registry.browser.featuredproject import *
39from canonical.launchpad.browser.feeds import *39from canonical.launchpad.browser.feeds import *
40from canonical.launchpad.browser.hwdb import *40from lp.hardwaredb.browser.hwdb import *
41from lp.registry.browser.karma import *41from lp.registry.browser.karma import *
42from canonical.launchpad.browser.launchpad import *42from canonical.launchpad.browser.launchpad import *
43from canonical.launchpad.browser.launchpadstatistic import *43from canonical.launchpad.browser.launchpadstatistic import *
4444
=== modified file 'lib/canonical/launchpad/browser/launchpad.py'
--- lib/canonical/launchpad/browser/launchpad.py 2010-01-11 23:43:59 +0000
+++ lib/canonical/launchpad/browser/launchpad.py 2010-02-10 23:32:22 +0000
@@ -71,7 +71,7 @@
71from lp.registry.interfaces.distribution import IDistributionSet71from lp.registry.interfaces.distribution import IDistributionSet
72from lp.registry.interfaces.karma import IKarmaActionSet72from lp.registry.interfaces.karma import IKarmaActionSet
73from canonical.launchpad.interfaces.account import AccountStatus73from canonical.launchpad.interfaces.account import AccountStatus
74from canonical.launchpad.interfaces.hwdb import IHWDBApplication74from lp.hardwaredb.interfaces.hwdb import IHWDBApplication
75from lp.services.worlddata.interfaces.language import ILanguageSet75from lp.services.worlddata.interfaces.language import ILanguageSet
76from canonical.launchpad.interfaces.launchpad import (76from canonical.launchpad.interfaces.launchpad import (
77 IAppFrontPageSearchForm, IBazaarApplication, ILaunchpadCelebrities,77 IAppFrontPageSearchForm, IBazaarApplication, ILaunchpadCelebrities,
7878
=== modified file 'lib/canonical/launchpad/configure.zcml'
--- lib/canonical/launchpad/configure.zcml 2010-01-14 13:25:34 +0000
+++ lib/canonical/launchpad/configure.zcml 2010-02-10 23:32:22 +0000
@@ -16,6 +16,8 @@
16 <authorizations module="canonical.launchpad.security" />16 <authorizations module="canonical.launchpad.security" />
17 <include package="canonical.launchpad.xmlrpc" />17 <include package="canonical.launchpad.xmlrpc" />
1818
19 <include package="lp.hardwaredb" />
20
19 <include package="lp.app" />21 <include package="lp.app" />
20 <include package="lp.bugs" />22 <include package="lp.bugs" />
21 <include package="lp.registry" />23 <include package="lp.registry" />
2224
=== modified file 'lib/canonical/launchpad/ftests/test_system_documentation.py'
--- lib/canonical/launchpad/ftests/test_system_documentation.py 2010-02-04 17:05:55 +0000
+++ lib/canonical/launchpad/ftests/test_system_documentation.py 2010-02-10 23:32:22 +0000
@@ -168,11 +168,6 @@
168# the harness for the mailinglist-xmlrpc.txt tests, or improving things so168# the harness for the mailinglist-xmlrpc.txt tests, or improving things so
169# that all this cruft isn't necessary.169# that all this cruft isn't necessary.
170170
171def hwdbDeviceTablesSetup(test):
172 setUp(test)
173 LaunchpadZopelessLayer.switchDbUser('hwdb-submission-processor')
174
175
176def updateRemoteProductSetup(test):171def updateRemoteProductSetup(test):
177 """Setup to use the 'updateremoteproduct' db user."""172 """Setup to use the 'updateremoteproduct' db user."""
178 setUp(test)173 setUp(test)
@@ -239,11 +234,6 @@
239 tearDown=test_notifications.tearDown,234 tearDown=test_notifications.tearDown,
240 stdout_logging=False, layer=None235 stdout_logging=False, layer=None
241 ),236 ),
242 'hwdb-device-tables.txt': LayeredDocFileSuite(
243 '../doc/hwdb-device-tables.txt',
244 setUp=hwdbDeviceTablesSetup, tearDown=tearDown,
245 layer=LaunchpadZopelessLayer,
246 ),
247 # This test is actually run twice to prove that the AppServerLayer237 # This test is actually run twice to prove that the AppServerLayer
248 # properly isolates the database between tests.238 # properly isolates the database between tests.
249 'launchpadlib.txt': LayeredDocFileSuite(239 'launchpadlib.txt': LayeredDocFileSuite(
250240
=== modified file 'lib/canonical/launchpad/interfaces/__init__.py'
--- lib/canonical/launchpad/interfaces/__init__.py 2010-01-20 15:41:25 +0000
+++ lib/canonical/launchpad/interfaces/__init__.py 2010-02-10 23:32:22 +0000
@@ -74,7 +74,7 @@
74from canonical.launchpad.interfaces.geoip import *74from canonical.launchpad.interfaces.geoip import *
75from lp.registry.interfaces.gpg import *75from lp.registry.interfaces.gpg import *
76from canonical.launchpad.interfaces.gpghandler import *76from canonical.launchpad.interfaces.gpghandler import *
77from canonical.launchpad.interfaces.hwdb import *77from lp.hardwaredb.interfaces.hwdb import *
78from lp.registry.interfaces.irc import *78from lp.registry.interfaces.irc import *
79from lp.registry.interfaces.jabber import *79from lp.registry.interfaces.jabber import *
80from lp.registry.interfaces.karma import *80from lp.registry.interfaces.karma import *
8181
=== modified file 'lib/canonical/launchpad/interfaces/_schema_circular_imports.py'
--- lib/canonical/launchpad/interfaces/_schema_circular_imports.py 2010-02-08 14:37:50 +0000
+++ lib/canonical/launchpad/interfaces/_schema_circular_imports.py 2010-02-10 23:32:22 +0000
@@ -50,7 +50,7 @@
50 IDistributionSourcePackage)50 IDistributionSourcePackage)
51from lp.registry.interfaces.distroseries import IDistroSeries51from lp.registry.interfaces.distroseries import IDistroSeries
52from lp.registry.interfaces.person import IPerson, IPersonPublic52from lp.registry.interfaces.person import IPerson, IPersonPublic
53from canonical.launchpad.interfaces.hwdb import HWBus, IHWSubmission53from lp.hardwaredb.interfaces.hwdb import HWBus, IHWSubmission
54from lp.registry.interfaces.pocket import PackagePublishingPocket54from lp.registry.interfaces.pocket import PackagePublishingPocket
55from lp.registry.interfaces.product import IProduct55from lp.registry.interfaces.product import IProduct
56from lp.registry.interfaces.productseries import IProductSeries56from lp.registry.interfaces.productseries import IProductSeries
5757
=== modified file 'lib/canonical/launchpad/scripts/garbo.py'
--- lib/canonical/launchpad/scripts/garbo.py 2010-01-22 18:03:35 +0000
+++ lib/canonical/launchpad/scripts/garbo.py 2010-02-10 23:32:22 +0000
@@ -21,7 +21,7 @@
21from canonical.database.constants import THIRTY_DAYS_AGO21from canonical.database.constants import THIRTY_DAYS_AGO
22from canonical.database.sqlbase import cursor, sqlvalues22from canonical.database.sqlbase import cursor, sqlvalues
23from canonical.launchpad.database.emailaddress import EmailAddress23from canonical.launchpad.database.emailaddress import EmailAddress
24from canonical.launchpad.database.hwdb import HWSubmission24from lp.hardwaredb.model.hwdb import HWSubmission
25from canonical.launchpad.database.oauth import OAuthNonce25from canonical.launchpad.database.oauth import OAuthNonce
26from canonical.launchpad.database.openidconsumer import OpenIDConsumerNonce26from canonical.launchpad.database.openidconsumer import OpenIDConsumerNonce
27from canonical.launchpad.interfaces import IMasterStore27from canonical.launchpad.interfaces import IMasterStore
@@ -768,7 +768,7 @@
768 def __init__(self, test_args=None):768 def __init__(self, test_args=None):
769 super(BaseDatabaseGarbageCollector, self).__init__(769 super(BaseDatabaseGarbageCollector, self).__init__(
770 self.script_name,770 self.script_name,
771 dbuser=self.script_name.replace('-','_'),771 dbuser=self.script_name.replace('-', '_'),
772 test_args=test_args)772 test_args=test_args)
773773
774 def add_my_options(self):774 def add_my_options(self):
775775
=== modified file 'lib/canonical/launchpad/scripts/tests/test_hwdb_submission_parser.py'
--- lib/canonical/launchpad/scripts/tests/test_hwdb_submission_parser.py 2010-01-07 06:16:04 +0000
+++ lib/canonical/launchpad/scripts/tests/test_hwdb_submission_parser.py 2010-02-10 23:32:22 +0000
@@ -19,7 +19,7 @@
19from zope.testing.loghandler import Handler19from zope.testing.loghandler import Handler
2020
21from canonical.config import config21from canonical.config import config
22from canonical.launchpad.scripts.hwdbsubmissions import (SubmissionParser,22from lp.hardwaredb.scripts.hwdbsubmissions import (SubmissionParser,
23 ROOT_UDI)23 ROOT_UDI)
24from canonical.testing import BaseLayer24from canonical.testing import BaseLayer
2525
2626
=== modified file 'lib/canonical/launchpad/scripts/tests/test_hwdb_submission_processing.py'
--- lib/canonical/launchpad/scripts/tests/test_hwdb_submission_processing.py 2010-01-07 06:16:04 +0000
+++ lib/canonical/launchpad/scripts/tests/test_hwdb_submission_processing.py 2010-02-10 23:32:22 +0000
@@ -16,7 +16,7 @@
16from zope.testing.loghandler import Handler16from zope.testing.loghandler import Handler
1717
18from canonical.config import config18from canonical.config import config
19from canonical.launchpad.interfaces.hwdb import (19from lp.hardwaredb.interfaces.hwdb import (
20 HWBus, HWSubmissionFormat, HWSubmissionProcessingStatus,20 HWBus, HWSubmissionFormat, HWSubmissionProcessingStatus,
21 IHWDeviceDriverLinkSet, IHWDeviceSet, IHWDriverSet,21 IHWDeviceDriverLinkSet, IHWDeviceSet, IHWDriverSet,
22 IHWSubmissionDeviceSet, IHWSubmissionSet, IHWVendorIDSet,22 IHWSubmissionDeviceSet, IHWSubmissionSet, IHWVendorIDSet,
@@ -24,7 +24,7 @@
24from canonical.launchpad.interfaces.launchpad import ILaunchpadCelebrities24from canonical.launchpad.interfaces.launchpad import ILaunchpadCelebrities
25from canonical.librarian.ftests.harness import fillLibrarianFile25from canonical.librarian.ftests.harness import fillLibrarianFile
26from canonical.librarian.interfaces import LibrarianServerError26from canonical.librarian.interfaces import LibrarianServerError
27from canonical.launchpad.scripts.hwdbsubmissions import (27from lp.hardwaredb.scripts.hwdbsubmissions import (
28 HALDevice, PCI_CLASS_BRIDGE, PCI_CLASS_SERIALBUS_CONTROLLER,28 HALDevice, PCI_CLASS_BRIDGE, PCI_CLASS_SERIALBUS_CONTROLLER,
29 PCI_CLASS_STORAGE, PCI_SUBCLASS_BRIDGE_CARDBUS, PCI_SUBCLASS_BRIDGE_PCI,29 PCI_CLASS_STORAGE, PCI_SUBCLASS_BRIDGE_CARDBUS, PCI_SUBCLASS_BRIDGE_PCI,
30 PCI_SUBCLASS_SERIALBUS_USB, PCI_SUBCLASS_STORAGE_SATA,30 PCI_SUBCLASS_SERIALBUS_USB, PCI_SUBCLASS_STORAGE_SATA,
3131
=== modified file 'lib/canonical/launchpad/security.py'
--- lib/canonical/launchpad/security.py 2010-02-08 20:11:17 +0000
+++ lib/canonical/launchpad/security.py 2010-02-10 23:32:22 +0000
@@ -51,7 +51,7 @@
51from lp.translations.interfaces.distroserieslanguage import (51from lp.translations.interfaces.distroserieslanguage import (
52 IDistroSeriesLanguage)52 IDistroSeriesLanguage)
53from lp.registry.interfaces.entitlement import IEntitlement53from lp.registry.interfaces.entitlement import IEntitlement
54from canonical.launchpad.interfaces.hwdb import (54from lp.hardwaredb.interfaces.hwdb import (
55 IHWDBApplication, IHWDevice, IHWDeviceClass, IHWDriver, IHWDriverName,55 IHWDBApplication, IHWDevice, IHWDeviceClass, IHWDriver, IHWDriverName,
56 IHWDriverPackageName, IHWSubmission, IHWSubmissionDevice, IHWVendorID)56 IHWDriverPackageName, IHWSubmission, IHWSubmissionDevice, IHWVendorID)
57from lp.services.worlddata.interfaces.language import ILanguage, ILanguageSet57from lp.services.worlddata.interfaces.language import ILanguage, ILanguageSet
5858
=== modified file 'lib/canonical/launchpad/systemhomes.py'
--- lib/canonical/launchpad/systemhomes.py 2010-02-08 11:37:21 +0000
+++ lib/canonical/launchpad/systemhomes.py 2010-02-10 23:32:22 +0000
@@ -34,7 +34,7 @@
34from lp.translations.interfaces.translationgroup import ITranslationGroupSet34from lp.translations.interfaces.translationgroup import ITranslationGroupSet
35from lp.translations.interfaces.translationsoverview import (35from lp.translations.interfaces.translationsoverview import (
36 ITranslationsOverview)36 ITranslationsOverview)
37from canonical.launchpad.interfaces.hwdb import (37from lp.hardwaredb.interfaces.hwdb import (
38 IHWDeviceSet, IHWDriverSet, IHWSubmissionDeviceSet, IHWSubmissionSet,38 IHWDeviceSet, IHWDriverSet, IHWSubmissionDeviceSet, IHWSubmissionSet,
39 IHWVendorIDSet, ParameterError)39 IHWVendorIDSet, ParameterError)
40from canonical.launchpad.webapp.interfaces import ICanonicalUrlData40from canonical.launchpad.webapp.interfaces import ICanonicalUrlData
4141
=== modified file 'lib/canonical/launchpad/zcml/configure.zcml'
--- lib/canonical/launchpad/zcml/configure.zcml 2009-12-05 18:37:28 +0000
+++ lib/canonical/launchpad/zcml/configure.zcml 2010-02-10 23:32:22 +0000
@@ -17,7 +17,6 @@
17 <include file="decoratedresultset.zcml" />17 <include file="decoratedresultset.zcml" />
18 <include file="emailaddress.zcml" />18 <include file="emailaddress.zcml" />
19 <include file="feeds.zcml" />19 <include file="feeds.zcml" />
20 <include file="hwdb.zcml" />
21 <include file="launchpad.zcml" />20 <include file="launchpad.zcml" />
22 <include file="launchpadstatistic.zcml" />21 <include file="launchpadstatistic.zcml" />
23 <include file="librarian.zcml" />22 <include file="librarian.zcml" />
2423
=== removed file 'lib/canonical/launchpad/zcml/hwdb.zcml'
--- lib/canonical/launchpad/zcml/hwdb.zcml 2009-09-29 00:29:12 +0000
+++ lib/canonical/launchpad/zcml/hwdb.zcml 1970-01-01 00:00:00 +0000
@@ -1,276 +0,0 @@
1<!-- Copyright 2009 Canonical Ltd. This software is licensed under the
2 GNU Affero General Public License version 3 (see the file LICENSE).
3-->
4
5<configure
6 xmlns="http://namespaces.zope.org/zope"
7 xmlns:browser="http://namespaces.zope.org/browser"
8 xmlns:i18n="http://namespaces.zope.org/i18n"
9 i18n_domain="launchpad">
10
11 <!-- HWDBApplication -->
12 <class class="canonical.launchpad.systemhomes.HWDBApplication">
13 <allow interface="lazr.restful.interfaces.ITopLevelEntryLink" />
14 <require
15 permission="launchpad.View"
16 interface="canonical.launchpad.interfaces.IHWDBApplication" />
17 </class>
18
19 <securedutility
20 class="canonical.launchpad.systemhomes.HWDBApplication"
21 provides="canonical.launchpad.interfaces.IHWDBApplication">
22 <allow interface="lazr.restful.interfaces.ITopLevelEntryLink" />
23 <require
24 permission="launchpad.View"
25 interface="canonical.launchpad.interfaces.IHWDBApplication" />
26 </securedutility>
27
28 <browser:navigation
29 module="canonical.launchpad.browser"
30 classes="HWDBApplicationNavigation"
31 />
32
33 <browser:url
34 for="canonical.launchpad.interfaces.IHWDBApplication"
35 path_expression="string:+hwdb"
36 parent_utility="canonical.launchpad.interfaces.ILaunchpadRoot"
37 />
38
39 <browser:page
40 for="canonical.launchpad.interfaces.IHWDBApplication"
41 class="canonical.launchpad.browser.HWDBUploadView"
42 permission="zope.Public"
43 name="+submit"
44 template="../templates/hwdb-submit-hardware-data.pt"
45 />
46
47 <class class="canonical.launchpad.database.hwdb.HWSubmission">
48 <require
49 permission="launchpad.View"
50 interface="canonical.launchpad.interfaces.IHWSubmission"
51 attributes="id" />
52 <require
53 permission="launchpad.Edit"
54 set_attributes="status" />
55 </class>
56
57 <browser:url
58 for="canonical.launchpad.interfaces.IHWSystemFingerprint"
59 path_expression="string:+fingerprint/${fingerprint}"
60 parent_utility="canonical.launchpad.interfaces.IHWDBApplication"
61 />
62
63 <browser:url
64 for="canonical.launchpad.interfaces.IHWSubmission"
65 path_expression="string:+submission/${submission_key}"
66 parent_utility="canonical.launchpad.interfaces.IHWDBApplication"
67 />
68
69 <browser:defaultView
70 for="canonical.launchpad.interfaces.IHWSubmission"
71 name="+text" />
72
73 <browser:page
74 for="canonical.launchpad.interfaces.IHWSubmission"
75 class="canonical.launchpad.browser.HWDBSubmissionTextView"
76 permission="zope.Public"
77 name="+text"
78 />
79
80 <securedutility
81 class="canonical.launchpad.database.hwdb.HWSubmissionSet"
82 provides="canonical.launchpad.interfaces.IHWSubmissionSet">
83 <allow interface="canonical.launchpad.interfaces.IHWSubmissionSet" />
84 </securedutility>
85
86 <class class="canonical.launchpad.database.hwdb.HWSystemFingerprint">
87 <allow
88 interface="canonical.launchpad.interfaces.IHWSystemFingerprint" />
89 </class>
90
91 <securedutility
92 class="canonical.launchpad.database.hwdb.HWSystemFingerprintSet"
93 provides="canonical.launchpad.interfaces.IHWSystemFingerprintSet">
94 <allow
95 interface="canonical.launchpad.interfaces.IHWSystemFingerprintSet" />
96 </securedutility>
97
98 <browser:page
99 for="canonical.launchpad.interfaces.IPerson"
100 permission="zope.Public"
101 class="canonical.launchpad.browser.HWDBPersonSubmissionsView"
102 template="../templates/person-hwdb-submissions.pt"
103 name="+hwdb-submissions"
104 />
105
106 <class class="canonical.launchpad.browser.hwdb.HWDBFingerprintSetView">
107 <allow
108 interface="zope.publisher.interfaces.browser.IBrowserPublisher" />
109 <allow attributes="__call__" />
110 </class>
111
112 <class class="canonical.launchpad.database.hwdb.HWVendorName">
113 <allow interface="canonical.launchpad.interfaces.IHWVendorName" />
114 <allow attributes="id" />
115 </class>
116
117 <securedutility
118 class="canonical.launchpad.database.hwdb.HWVendorNameSet"
119 provides="canonical.launchpad.interfaces.IHWVendorNameSet">
120 <allow interface="canonical.launchpad.interfaces.IHWVendorNameSet" />
121 </securedutility>
122
123 <class class="canonical.launchpad.database.hwdb.HWVendorID">
124 <require
125 permission="launchpad.View"
126 interface="canonical.launchpad.interfaces.IHWVendorID" />
127 </class>
128
129 <browser:url
130 for="canonical.launchpad.interfaces.IHWVendorID"
131 path_expression="string:+hwvendorid/${id}"
132 parent_utility="canonical.launchpad.interfaces.IHWDBApplication"
133 />
134
135 <securedutility
136 class="canonical.launchpad.database.hwdb.HWVendorIDSet"
137 provides="canonical.launchpad.interfaces.IHWVendorIDSet">
138 <allow interface="canonical.launchpad.interfaces.IHWVendorIDSet" />
139 </securedutility>
140
141 <class class="canonical.launchpad.database.hwdb.HWDevice">
142 <require
143 permission="launchpad.View"
144 interface="canonical.launchpad.interfaces.IHWDevice" />
145 </class>
146
147 <browser:url
148 for="canonical.launchpad.interfaces.IHWDevice"
149 path_expression="string:+device/${id}"
150 parent_utility="canonical.launchpad.interfaces.IHWDBApplication"
151 />
152
153 <securedutility
154 class="canonical.launchpad.database.hwdb.HWDeviceSet"
155 provides="canonical.launchpad.interfaces.IHWDeviceSet">
156 <allow interface="canonical.launchpad.interfaces.IHWDeviceSet" />
157 </securedutility>
158
159 <class class="canonical.launchpad.database.hwdb.HWDeviceNameVariant">
160 <allow interface=
161 "canonical.launchpad.interfaces.IHWDeviceNameVariant" />
162 </class>
163
164 <securedutility
165 class="canonical.launchpad.database.hwdb.HWDeviceNameVariantSet"
166 provides="canonical.launchpad.interfaces.IHWDeviceNameVariantSet">
167 <allow interface=
168 "canonical.launchpad.interfaces.IHWDeviceNameVariantSet" />
169 </securedutility>
170
171 <class class="canonical.launchpad.database.hwdb.HWDriver">
172 <require
173 permission="launchpad.View"
174 interface="canonical.launchpad.interfaces.IHWDriver" />
175 </class>
176
177 <browser:url
178 for="canonical.launchpad.interfaces.IHWDriver"
179 path_expression="string:+driver/${id}"
180 parent_utility="canonical.launchpad.interfaces.IHWDBApplication"
181 />
182
183 <securedutility
184 class="canonical.launchpad.database.hwdb.HWDriverSet"
185 provides="canonical.launchpad.interfaces.IHWDriverSet">
186 <allow
187 interface="canonical.launchpad.interfaces.IHWDriverSet" />
188 </securedutility>
189
190 <class class="canonical.launchpad.database.hwdb.HWDriverName">
191 <require
192 permission="launchpad.View"
193 interface="canonical.launchpad.interfaces.IHWDriverName" />
194 </class>
195
196 <browser:url
197 for="canonical.launchpad.interfaces.IHWDriverName"
198 path_expression="string:+drivername/${name}"
199 parent_utility="canonical.launchpad.interfaces.IHWDBApplication"
200 />
201
202 <class class="canonical.launchpad.database.hwdb.HWDriverPackageName">
203 <require
204 permission="launchpad.View"
205 interface="canonical.launchpad.interfaces.IHWDriverPackageName" />
206 </class>
207
208 <browser:url
209 for="canonical.launchpad.interfaces.IHWDriverPackageName"
210 path_expression="string:+driverpackagename/${package_name}"
211 parent_utility="canonical.launchpad.interfaces.IHWDBApplication"
212 />
213
214 <class class="canonical.launchpad.database.hwdb.HWDeviceDriverLink">
215 <allow
216 interface="canonical.launchpad.interfaces.IHWDeviceDriverLink" />
217 <allow attributes="id" />
218 </class>
219
220 <securedutility
221 class="canonical.launchpad.database.hwdb.HWDeviceDriverLinkSet"
222 provides="canonical.launchpad.interfaces.IHWDeviceDriverLinkSet">
223 <allow
224 interface="canonical.launchpad.interfaces.IHWDeviceDriverLinkSet" />
225 </securedutility>
226
227 <class class="canonical.launchpad.database.hwdb.HWDeviceClass">
228 <require permission="launchpad.View"
229 interface="canonical.launchpad.interfaces.IHWDeviceClass" />
230 </class>
231
232 <browser:url
233 for="canonical.launchpad.interfaces.IHWDeviceClass"
234 path_expression="string:+deviceclass/${id}"
235 parent_utility="canonical.launchpad.interfaces.IHWDBApplication"
236 />
237
238 <securedutility
239 class="canonical.launchpad.database.hwdb.HWDeviceClassSet"
240 provides="canonical.launchpad.interfaces.IHWDeviceClassSet">
241 <allow
242 interface="canonical.launchpad.interfaces.IHWDeviceClassSet" />
243 </securedutility>
244
245 <class class="canonical.launchpad.database.hwdb.HWSubmissionDevice">
246 <require
247 permission="launchpad.View"
248 interface="canonical.launchpad.interfaces.IHWSubmissionDevice" />
249 </class>
250
251 <browser:url
252 for="canonical.launchpad.interfaces.IHWSubmissionDevice"
253 path_expression="string:+submissiondevice/${id}"
254 parent_utility="canonical.launchpad.interfaces.IHWDBApplication"
255 />
256
257 <securedutility
258 class="canonical.launchpad.database.hwdb.HWSubmissionDeviceSet"
259 provides="canonical.launchpad.interfaces.IHWSubmissionDeviceSet">
260 <allow
261 interface="canonical.launchpad.interfaces.IHWSubmissionDeviceSet" />
262 </securedutility>
263
264 <class class="canonical.launchpad.database.hwdb.HWSubmissionBug">
265 <allow
266 interface="canonical.launchpad.interfaces.IHWSubmissionBug" />
267 <allow attributes="id" />
268 </class>
269
270 <securedutility
271 class="canonical.launchpad.database.hwdb.HWSubmissionBugSet"
272 provides="canonical.launchpad.interfaces.IHWSubmissionBugSet">
273 <allow
274 interface="canonical.launchpad.interfaces.IHWSubmissionBugSet" />
275 </securedutility>
276</configure>
2770
=== modified file 'lib/lp/bugs/browser/bugtarget.py'
--- lib/lp/bugs/browser/bugtarget.py 2010-01-29 19:00:47 +0000
+++ lib/lp/bugs/browser/bugtarget.py 2010-02-10 23:32:22 +0000
@@ -51,7 +51,7 @@
51 BugTaskStatus, IBugTaskSet, UNRESOLVED_BUGTASK_STATUSES)51 BugTaskStatus, IBugTaskSet, UNRESOLVED_BUGTASK_STATUSES)
52from canonical.launchpad.interfaces.launchpad import (52from canonical.launchpad.interfaces.launchpad import (
53 IHasExternalBugTracker, ILaunchpadUsage)53 IHasExternalBugTracker, ILaunchpadUsage)
54from canonical.launchpad.interfaces.hwdb import IHWSubmissionSet54from lp.hardwaredb.interfaces.hwdb import IHWSubmissionSet
55from canonical.launchpad.interfaces.launchpad import ILaunchpadCelebrities55from canonical.launchpad.interfaces.launchpad import ILaunchpadCelebrities
56from canonical.launchpad.interfaces.temporaryblobstorage import (56from canonical.launchpad.interfaces.temporaryblobstorage import (
57 ITemporaryStorageManager)57 ITemporaryStorageManager)
@@ -827,6 +827,7 @@
827 Returns a list of dicts, with each dict containing values for827 Returns a list of dicts, with each dict containing values for
828 "preamble" and "content".828 "preamble" and "content".
829 """829 """
830
830 def target_name(target):831 def target_name(target):
831 # IProject can be considered the target of a bug during832 # IProject can be considered the target of a bug during
832 # the bug filing process, but does not extend IBugTarget833 # the bug filing process, but does not extend IBugTarget
@@ -871,6 +872,7 @@
871872
872 This view exists only to redirect from +filebug-advanced to +filebug.873 This view exists only to redirect from +filebug-advanced to +filebug.
873 """874 """
875
874 def initialize(self):876 def initialize(self):
875 filebug_url = canonical_url(877 filebug_url = canonical_url(
876 self.context, rootsite='bugs', view_name='+filebug')878 self.context, rootsite='bugs', view_name='+filebug')
877879
=== modified file 'lib/lp/bugs/doc/bug.txt'
--- lib/lp/bugs/doc/bug.txt 2010-01-20 15:39:24 +0000
+++ lib/lp/bugs/doc/bug.txt 2010-02-10 23:32:22 +0000
@@ -1512,7 +1512,7 @@
1512submission contains information that could help developers1512submission contains information that could help developers
1513fix the bug.1513fix the bug.
15141514
1515 >>> from canonical.launchpad.interfaces.hwdb import IHWSubmissionSet1515 >>> from lp.hardwaredb.interfaces.hwdb import IHWSubmissionSet
1516 >>> submission = getUtility(IHWSubmissionSet).getBySubmissionKey(1516 >>> submission = getUtility(IHWSubmissionSet).getBySubmissionKey(
1517 ... 'sample-submission')1517 ... 'sample-submission')
1518 >>> test_bug.linkHWSubmission(submission)1518 >>> test_bug.linkHWSubmission(submission)
15191519
=== modified file 'lib/lp/bugs/doc/bugtask-search.txt'
--- lib/lp/bugs/doc/bugtask-search.txt 2010-01-23 21:42:36 +0000
+++ lib/lp/bugs/doc/bugtask-search.txt 2010-02-10 23:32:22 +0000
@@ -798,7 +798,7 @@
7980x0455), which appears in a HWDB submission from Sample Person, bugs7980x0455), which appears in a HWDB submission from Sample Person, bugs
799reported by him will be returned.799reported by him will be returned.
800800
801 >>> from canonical.launchpad.interfaces.hwdb import HWBus801 >>> from lp.hardwaredb.interfaces.hwdb import HWBus
802 >>> search_params = BugTaskSearchParams(802 >>> search_params = BugTaskSearchParams(
803 ... user=None, hardware_bus=HWBus.PCI, hardware_vendor_id='0x10de',803 ... user=None, hardware_bus=HWBus.PCI, hardware_vendor_id='0x10de',
804 ... hardware_product_id='0x0455', hardware_owner_is_bug_reporter=True)804 ... hardware_product_id='0x0455', hardware_owner_is_bug_reporter=True)
@@ -902,7 +902,7 @@
902a HWDB submission, where the submission contains the given device or902a HWDB submission, where the submission contains the given device or
903driver.903driver.
904904
905 >>> from canonical.launchpad.interfaces.hwdb import IHWSubmissionSet905 >>> from lp.hardwaredb.interfaces.hwdb import IHWSubmissionSet
906 >>> hw_submission = getUtility(IHWSubmissionSet).getBySubmissionKey(906 >>> hw_submission = getUtility(IHWSubmissionSet).getBySubmissionKey(
907 ... 'sample-submission')907 ... 'sample-submission')
908 >>> bug_19 = getUtility(IBugSet).get(19)908 >>> bug_19 = getUtility(IBugSet).get(19)
909909
=== modified file 'lib/lp/bugs/model/bug.py'
--- lib/lp/bugs/model/bug.py 2010-01-25 11:41:18 +0000
+++ lib/lp/bugs/model/bug.py 2010-02-10 23:32:22 +0000
@@ -46,7 +46,7 @@
46 Message, MessageChunk, MessageSet)46 Message, MessageChunk, MessageSet)
47from canonical.launchpad.fields import DuplicateBug47from canonical.launchpad.fields import DuplicateBug
48from canonical.launchpad.helpers import shortlist48from canonical.launchpad.helpers import shortlist
49from canonical.launchpad.interfaces.hwdb import IHWSubmissionBugSet49from lp.hardwaredb.interfaces.hwdb import IHWSubmissionBugSet
50from canonical.launchpad.interfaces.launchpad import ILaunchpadCelebrities50from canonical.launchpad.interfaces.launchpad import ILaunchpadCelebrities
51from canonical.launchpad.interfaces.librarian import ILibraryFileAliasSet51from canonical.launchpad.interfaces.librarian import ILibraryFileAliasSet
52from canonical.launchpad.interfaces.lpstorm import IStore52from canonical.launchpad.interfaces.lpstorm import IStore
@@ -100,7 +100,7 @@
100from lp.registry.interfaces.productseries import IProductSeries100from lp.registry.interfaces.productseries import IProductSeries
101from lp.registry.interfaces.sourcepackage import ISourcePackage101from lp.registry.interfaces.sourcepackage import ISourcePackage
102from lp.registry.model.mentoringoffer import MentoringOffer102from lp.registry.model.mentoringoffer import MentoringOffer
103from lp.registry.model.person import Person103from lp.registry.model.person import Person, ValidPersonCache
104from lp.registry.model.pillar import pillar_sort_key104from lp.registry.model.pillar import pillar_sort_key
105105
106106
@@ -227,7 +227,7 @@
227 prejoins=['owner'],227 prejoins=['owner'],
228 orderBy=['datecreated', 'id'])228 orderBy=['datecreated', 'id'])
229 bug_messages = SQLMultipleJoin(229 bug_messages = SQLMultipleJoin(
230 'BugMessage', joinColumn='bug',orderBy='id')230 'BugMessage', joinColumn='bug', orderBy='id')
231 watches = SQLMultipleJoin(231 watches = SQLMultipleJoin(
232 'BugWatch', joinColumn='bug', orderBy=['bugtracker', 'remotebug'])232 'BugWatch', joinColumn='bug', orderBy=['bugtracker', 'remotebug'])
233 cves = SQLRelatedJoin('Cve', intermediateTable='BugCve',233 cves = SQLRelatedJoin('Cve', intermediateTable='BugCve',
@@ -530,7 +530,6 @@
530 # the same time as retrieving the bug subscriptions (as a left530 # the same time as retrieving the bug subscriptions (as a left
531 # join). However, this ran slowly (far from optimal query531 # join). However, this ran slowly (far from optimal query
532 # plan), so we're doing it as two queries now.532 # plan), so we're doing it as two queries now.
533 from lp.registry.model.person import Person, ValidPersonCache
534 valid_persons = Store.of(self).find(533 valid_persons = Store.of(self).find(
535 (Person, ValidPersonCache),534 (Person, ValidPersonCache),
536 Person.id == ValidPersonCache.id,535 Person.id == ValidPersonCache.id,
@@ -553,7 +552,6 @@
553 the relevant subscribers and rationales will be registered on552 the relevant subscribers and rationales will be registered on
554 it.553 it.
555 """554 """
556 from lp.registry.model.person import Person
557 subscribers = list(555 subscribers = list(
558 Person.select("""556 Person.select("""
559 Person.id = BugSubscription.person AND557 Person.id = BugSubscription.person AND
@@ -614,7 +612,6 @@
614 if self.private:612 if self.private:
615 return []613 return []
616614
617 from lp.registry.model.person import Person
618 dupe_subscribers = set(615 dupe_subscribers = set(
619 Person.select("""616 Person.select("""
620 Person.id = BugSubscription.person AND617 Person.id = BugSubscription.person AND
@@ -969,7 +966,7 @@
969 # one thing they often have to filter for is completeness. We maintain966 # one thing they often have to filter for is completeness. We maintain
970 # this single canonical query string here so that it does not have to be967 # this single canonical query string here so that it does not have to be
971 # cargo culted into Product, Distribution, ProductSeries etc968 # cargo culted into Product, Distribution, ProductSeries etc
972 completeness_clause = """969 completeness_clause = """
973 BugTask.bug = Bug.id AND """ + BugTask.completeness_clause970 BugTask.bug = Bug.id AND """ + BugTask.completeness_clause
974971
975 def canBeAQuestion(self):972 def canBeAQuestion(self):
@@ -1109,7 +1106,6 @@
1109 # Since we can't prejoin, cache all people at once so we don't1106 # Since we can't prejoin, cache all people at once so we don't
1110 # have to do it while rendering, which is a big deal for bugs1107 # have to do it while rendering, which is a big deal for bugs
1111 # with a million comments.1108 # with a million comments.
1112 from lp.registry.model.person import Person
1113 owner_ids = set()1109 owner_ids = set()
1114 for chunk in chunks:1110 for chunk in chunks:
1115 if chunk.message.ownerID:1111 if chunk.message.ownerID:
@@ -1327,8 +1323,7 @@
1327 """Get the tags as a sorted list of strings."""1323 """Get the tags as a sorted list of strings."""
1328 tags = [1324 tags = [
1329 bugtag.tag1325 bugtag.tag
1330 for bugtag in BugTag.selectBy(bug=self, orderBy='tag')1326 for bugtag in BugTag.selectBy(bug=self, orderBy='tag')]
1331 ]
1332 return tags1327 return tags
13331328
1334 def _setTags(self, tags):1329 def _setTags(self, tags):
13351330
=== modified file 'lib/lp/bugs/model/bugtask.py'
--- lib/lp/bugs/model/bugtask.py 2010-01-23 21:42:36 +0000
+++ lib/lp/bugs/model/bugtask.py 2010-02-10 23:32:22 +0000
@@ -1844,7 +1844,7 @@
1844 params.hardware_product_id are all not None.1844 params.hardware_product_id are all not None.
1845 """1845 """
1846 # Avoid cyclic imports.1846 # Avoid cyclic imports.
1847 from canonical.launchpad.database.hwdb import (1847 from lp.hardwaredb.model.hwdb import (
1848 HWSubmission, HWSubmissionBug, HWSubmissionDevice,1848 HWSubmission, HWSubmissionBug, HWSubmissionDevice,
1849 _userCanAccessSubmissionStormClause,1849 _userCanAccessSubmissionStormClause,
1850 make_submission_device_statistics_clause)1850 make_submission_device_statistics_clause)
18511851
=== modified file 'lib/lp/bugs/tests/test_bugtask.py'
--- lib/lp/bugs/tests/test_bugtask.py 2009-07-17 00:26:05 +0000
+++ lib/lp/bugs/tests/test_bugtask.py 2010-02-10 23:32:22 +0000
@@ -12,7 +12,7 @@
12from lazr.lifecycle.snapshot import Snapshot12from lazr.lifecycle.snapshot import Snapshot
1313
14from canonical.launchpad.ftests import login14from canonical.launchpad.ftests import login
15from canonical.launchpad.interfaces.hwdb import HWBus, IHWDeviceSet15from lp.hardwaredb.interfaces.hwdb import HWBus, IHWDeviceSet
16from canonical.launchpad.searchbuilder import all, any16from canonical.launchpad.searchbuilder import all, any
17from canonical.testing import LaunchpadFunctionalLayer, LaunchpadZopelessLayer17from canonical.testing import LaunchpadFunctionalLayer, LaunchpadZopelessLayer
1818
1919
=== added directory 'lib/lp/hardwaredb'
=== added file 'lib/lp/hardwaredb/__init__.py'
=== added directory 'lib/lp/hardwaredb/browser'
=== added file 'lib/lp/hardwaredb/browser/__init__.py'
=== added file 'lib/lp/hardwaredb/browser/configure.zcml'
--- lib/lp/hardwaredb/browser/configure.zcml 1970-01-01 00:00:00 +0000
+++ lib/lp/hardwaredb/browser/configure.zcml 2010-02-10 23:32:22 +0000
@@ -0,0 +1,71 @@
1<configure
2 xmlns="http://namespaces.zope.org/zope"
3 xmlns:browser="http://namespaces.zope.org/browser"
4 xmlns:i18n="http://namespaces.zope.org/i18n"
5 xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc"
6 i18n_domain="launchpad">
7 <browser:navigation
8 module="lp.hardwaredb.browser.hwdb"
9 classes="
10 HWDBApplicationNavigation"/>
11 <browser:url
12 for="lp.hardwaredb.interfaces.hwdb.IHWDBApplication"
13 path_expression="string:+hwdb"
14 parent_utility="canonical.launchpad.interfaces.ILaunchpadRoot"/>
15 <browser:page
16 for="lp.hardwaredb.interfaces.hwdb.IHWDBApplication"
17 class="lp.hardwaredb.browser.hwdb.HWDBUploadView"
18 permission="zope.Public"
19 name="+submit"
20 template="../templates/hwdb-submit-hardware-data.pt"/>
21 <browser:url
22 for="lp.hardwaredb.interfaces.hwdb.IHWSystemFingerprint"
23 path_expression="string:+fingerprint/${fingerprint}"
24 parent_utility="lp.hardwaredb.interfaces.hwdb.IHWDBApplication"/>
25 <browser:url
26 for="lp.hardwaredb.interfaces.hwdb.IHWSubmission"
27 path_expression="string:+submission/${submission_key}"
28 parent_utility="lp.hardwaredb.interfaces.hwdb.IHWDBApplication"/>
29 <browser:defaultView
30 for="lp.hardwaredb.interfaces.hwdb.IHWSubmission"
31 name="+text"/>
32 <browser:page
33 for="lp.hardwaredb.interfaces.hwdb.IHWSubmission"
34 class="lp.hardwaredb.browser.hwdb.HWDBSubmissionTextView"
35 permission="zope.Public"
36 name="+text"/>
37 <browser:page
38 for="canonical.launchpad.interfaces.IPerson"
39 permission="zope.Public"
40 class="lp.hardwaredb.browser.hwdb.HWDBPersonSubmissionsView"
41 template="../templates/person-hwdb-submissions.pt"
42 name="+hwdb-submissions"/>
43 <browser:url
44 for="lp.hardwaredb.interfaces.hwdb.IHWVendorID"
45 path_expression="string:+hwvendorid/${id}"
46 parent_utility="lp.hardwaredb.interfaces.hwdb.IHWDBApplication"/>
47 <browser:url
48 for="lp.hardwaredb.interfaces.hwdb.IHWDevice"
49 path_expression="string:+device/${id}"
50 parent_utility="lp.hardwaredb.interfaces.hwdb.IHWDBApplication"/>
51 <browser:url
52 for="lp.hardwaredb.interfaces.hwdb.IHWDriver"
53 path_expression="string:+driver/${id}"
54 parent_utility="lp.hardwaredb.interfaces.hwdb.IHWDBApplication"/>
55 <browser:url
56 for="lp.hardwaredb.interfaces.hwdb.IHWDriverName"
57 path_expression="string:+drivername/${name}"
58 parent_utility="lp.hardwaredb.interfaces.hwdb.IHWDBApplication"/>
59 <browser:url
60 for="lp.hardwaredb.interfaces.hwdb.IHWDriverPackageName"
61 path_expression="string:+driverpackagename/${package_name}"
62 parent_utility="lp.hardwaredb.interfaces.hwdb.IHWDBApplication"/>
63 <browser:url
64 for="lp.hardwaredb.interfaces.hwdb.IHWDeviceClass"
65 path_expression="string:+deviceclass/${id}"
66 parent_utility="lp.hardwaredb.interfaces.hwdb.IHWDBApplication"/>
67 <browser:url
68 for="lp.hardwaredb.interfaces.hwdb.IHWSubmissionDevice"
69 path_expression="string:+submissiondevice/${id}"
70 parent_utility="lp.hardwaredb.interfaces.hwdb.IHWDBApplication"/>
71</configure>
0\ No newline at end of file72\ No newline at end of file
173
=== renamed file 'lib/canonical/launchpad/browser/hwdb.py' => 'lib/lp/hardwaredb/browser/hwdb.py'
--- lib/canonical/launchpad/browser/hwdb.py 2009-10-15 16:32:22 +0000
+++ lib/lp/hardwaredb/browser/hwdb.py 2010-02-10 23:32:22 +0000
@@ -22,7 +22,7 @@
2222
23from lp.registry.interfaces.distribution import IDistributionSet23from lp.registry.interfaces.distribution import IDistributionSet
24from canonical.launchpad.interfaces.launchpad import ILaunchBag, NotFoundError24from canonical.launchpad.interfaces.launchpad import ILaunchBag, NotFoundError
25from canonical.launchpad.interfaces.hwdb import (25from lp.hardwaredb.interfaces.hwdb import (
26 HWSubmissionMissingFields, IHWDBApplication, IHWDeviceClassSet,26 HWSubmissionMissingFields, IHWDBApplication, IHWDeviceClassSet,
27 IHWDeviceSet, IHWDriverSet, IHWSubmissionDeviceSet, IHWSubmissionForm,27 IHWDeviceSet, IHWDriverSet, IHWSubmissionDeviceSet, IHWSubmissionForm,
28 IHWSubmissionSet, IHWSystemFingerprintSet, IHWVendorIDSet)28 IHWSubmissionSet, IHWSystemFingerprintSet, IHWVendorIDSet)
2929
=== added directory 'lib/lp/hardwaredb/browser/tests'
=== added file 'lib/lp/hardwaredb/browser/tests/__init__.py'
=== added file 'lib/lp/hardwaredb/browser/tests/test_views.py'
--- lib/lp/hardwaredb/browser/tests/test_views.py 1970-01-01 00:00:00 +0000
+++ lib/lp/hardwaredb/browser/tests/test_views.py 2010-02-10 23:32:22 +0000
@@ -0,0 +1,39 @@
1# Copyright 2010 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).
3
4"""
5Run the view tests.
6"""
7
8import logging
9import os
10import unittest
11
12from canonical.launchpad.testing.systemdocs import (
13 LayeredDocFileSuite, setUp, tearDown)
14from canonical.testing import LaunchpadFunctionalLayer
15
16
17here = os.path.dirname(os.path.realpath(__file__))
18
19
20def test_suite():
21 suite = unittest.TestSuite()
22 testsdir = os.path.abspath(here)
23
24 # Add tests using default setup/teardown
25 filenames = [filename
26 for filename in os.listdir(testsdir)
27 if filename.endswith('.txt')]
28 # Sort the list to give a predictable order.
29 filenames.sort()
30 for filename in filenames:
31 path = filename
32 one_test = LayeredDocFileSuite(
33 path, setUp=setUp, tearDown=tearDown,
34 layer=LaunchpadFunctionalLayer,
35 stdout_logging_level=logging.WARNING
36 )
37 suite.addTest(one_test)
38
39 return suite
040
=== added file 'lib/lp/hardwaredb/configure.zcml'
--- lib/lp/hardwaredb/configure.zcml 1970-01-01 00:00:00 +0000
+++ lib/lp/hardwaredb/configure.zcml 2010-02-10 23:32:22 +0000
@@ -0,0 +1,190 @@
1<configure
2 xmlns="http://namespaces.zope.org/zope"
3 xmlns:browser="http://namespaces.zope.org/browser"
4 xmlns:i18n="http://namespaces.zope.org/i18n"
5 xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc"
6 i18n_domain="launchpad">
7 <include
8 package=".browser"/>
9
10 <!-- HWDBApplication -->
11
12 <class
13 class="canonical.launchpad.systemhomes.HWDBApplication">
14 <allow
15 interface="lazr.restful.interfaces.ITopLevelEntryLink"/>
16 <require
17 permission="launchpad.View"
18 interface="lp.hardwaredb.interfaces.hwdb.IHWDBApplication"/>
19 </class>
20 <securedutility
21 class="canonical.launchpad.systemhomes.HWDBApplication"
22 provides="lp.hardwaredb.interfaces.hwdb.IHWDBApplication">
23 <allow
24 interface="lazr.restful.interfaces.ITopLevelEntryLink"/>
25 <require
26 permission="launchpad.View"
27 interface="lp.hardwaredb.interfaces.hwdb.IHWDBApplication"/>
28 </securedutility>
29 <class
30 class="lp.hardwaredb.model.hwdb.HWSubmission">
31 <require
32 permission="launchpad.View"
33 interface="lp.hardwaredb.interfaces.hwdb.IHWSubmission"
34 attributes="
35 id"/>
36 <require
37 permission="launchpad.Edit"
38 set_attributes="status"/>
39 </class>
40 <securedutility
41 class="lp.hardwaredb.model.hwdb.HWSubmissionSet"
42 provides="lp.hardwaredb.interfaces.hwdb.IHWSubmissionSet">
43 <allow
44 interface="lp.hardwaredb.interfaces.hwdb.IHWSubmissionSet"/>
45 </securedutility>
46 <class
47 class="lp.hardwaredb.model.hwdb.HWSystemFingerprint">
48 <allow
49 interface="lp.hardwaredb.interfaces.hwdb.IHWSystemFingerprint"/>
50 </class>
51 <securedutility
52 class="lp.hardwaredb.model.hwdb.HWSystemFingerprintSet"
53 provides="lp.hardwaredb.interfaces.hwdb.IHWSystemFingerprintSet">
54 <allow
55 interface="lp.hardwaredb.interfaces.hwdb.IHWSystemFingerprintSet"/>
56 </securedutility>
57 <class
58 class="lp.hardwaredb.browser.hwdb.HWDBFingerprintSetView">
59 <allow
60 interface="zope.publisher.interfaces.browser.IBrowserPublisher"/>
61 <allow
62 attributes="
63 __call__"/>
64 </class>
65 <class
66 class="lp.hardwaredb.model.hwdb.HWVendorName">
67 <allow
68 interface="lp.hardwaredb.interfaces.hwdb.IHWVendorName"/>
69 <allow
70 attributes="
71 id"/>
72 </class>
73 <securedutility
74 class="lp.hardwaredb.model.hwdb.HWVendorNameSet"
75 provides="lp.hardwaredb.interfaces.hwdb.IHWVendorNameSet">
76 <allow
77 interface="lp.hardwaredb.interfaces.hwdb.IHWVendorNameSet"/>
78 </securedutility>
79 <class
80 class="lp.hardwaredb.model.hwdb.HWVendorID">
81 <require
82 permission="launchpad.View"
83 interface="lp.hardwaredb.interfaces.hwdb.IHWVendorID"/>
84 </class>
85 <securedutility
86 class="lp.hardwaredb.model.hwdb.HWVendorIDSet"
87 provides="lp.hardwaredb.interfaces.hwdb.IHWVendorIDSet">
88 <allow
89 interface="lp.hardwaredb.interfaces.hwdb.IHWVendorIDSet"/>
90 </securedutility>
91 <class
92 class="lp.hardwaredb.model.hwdb.HWDevice">
93 <require
94 permission="launchpad.View"
95 interface="lp.hardwaredb.interfaces.hwdb.IHWDevice"/>
96 </class>
97 <securedutility
98 class="lp.hardwaredb.model.hwdb.HWDeviceSet"
99 provides="lp.hardwaredb.interfaces.hwdb.IHWDeviceSet">
100 <allow
101 interface="lp.hardwaredb.interfaces.hwdb.IHWDeviceSet"/>
102 </securedutility>
103 <class
104 class="lp.hardwaredb.model.hwdb.HWDeviceNameVariant">
105 <allow
106 interface="lp.hardwaredb.interfaces.hwdb.IHWDeviceNameVariant"/>
107 </class>
108 <securedutility
109 class="lp.hardwaredb.model.hwdb.HWDeviceNameVariantSet"
110 provides="lp.hardwaredb.interfaces.hwdb.IHWDeviceNameVariantSet">
111 <allow
112 interface="lp.hardwaredb.interfaces.hwdb.IHWDeviceNameVariantSet"/>
113 </securedutility>
114 <class
115 class="lp.hardwaredb.model.hwdb.HWDriver">
116 <require
117 permission="launchpad.View"
118 interface="lp.hardwaredb.interfaces.hwdb.IHWDriver"/>
119 </class>
120 <securedutility
121 class="lp.hardwaredb.model.hwdb.HWDriverSet"
122 provides="lp.hardwaredb.interfaces.hwdb.IHWDriverSet">
123 <allow
124 interface="lp.hardwaredb.interfaces.hwdb.IHWDriverSet"/>
125 </securedutility>
126 <class
127 class="lp.hardwaredb.model.hwdb.HWDriverName">
128 <require
129 permission="launchpad.View"
130 interface="lp.hardwaredb.interfaces.hwdb.IHWDriverName"/>
131 </class>
132 <class
133 class="lp.hardwaredb.model.hwdb.HWDriverPackageName">
134 <require
135 permission="launchpad.View"
136 interface="lp.hardwaredb.interfaces.hwdb.IHWDriverPackageName"/>
137 </class>
138 <class
139 class="lp.hardwaredb.model.hwdb.HWDeviceDriverLink">
140 <allow
141 interface="lp.hardwaredb.interfaces.hwdb.IHWDeviceDriverLink"/>
142 <allow
143 attributes="
144 id"/>
145 </class>
146 <securedutility
147 class="lp.hardwaredb.model.hwdb.HWDeviceDriverLinkSet"
148 provides="lp.hardwaredb.interfaces.hwdb.IHWDeviceDriverLinkSet">
149 <allow
150 interface="lp.hardwaredb.interfaces.hwdb.IHWDeviceDriverLinkSet"/>
151 </securedutility>
152 <class
153 class="lp.hardwaredb.model.hwdb.HWDeviceClass">
154 <require
155 permission="launchpad.View"
156 interface="lp.hardwaredb.interfaces.hwdb.IHWDeviceClass"/>
157 </class>
158 <securedutility
159 class="lp.hardwaredb.model.hwdb.HWDeviceClassSet"
160 provides="lp.hardwaredb.interfaces.hwdb.IHWDeviceClassSet">
161 <allow
162 interface="lp.hardwaredb.interfaces.hwdb.IHWDeviceClassSet"/>
163 </securedutility>
164 <class
165 class="lp.hardwaredb.model.hwdb.HWSubmissionDevice">
166 <require
167 permission="launchpad.View"
168 interface="lp.hardwaredb.interfaces.hwdb.IHWSubmissionDevice"/>
169 </class>
170 <securedutility
171 class="lp.hardwaredb.model.hwdb.HWSubmissionDeviceSet"
172 provides="lp.hardwaredb.interfaces.hwdb.IHWSubmissionDeviceSet">
173 <allow
174 interface="lp.hardwaredb.interfaces.hwdb.IHWSubmissionDeviceSet"/>
175 </securedutility>
176 <class
177 class="lp.hardwaredb.model.hwdb.HWSubmissionBug">
178 <allow
179 interface="lp.hardwaredb.interfaces.hwdb.IHWSubmissionBug"/>
180 <allow
181 attributes="
182 id"/>
183 </class>
184 <securedutility
185 class="lp.hardwaredb.model.hwdb.HWSubmissionBugSet"
186 provides="lp.hardwaredb.interfaces.hwdb.IHWSubmissionBugSet">
187 <allow
188 interface="lp.hardwaredb.interfaces.hwdb.IHWSubmissionBugSet"/>
189 </securedutility>
190</configure>
0\ No newline at end of file191\ No newline at end of file
1192
=== added directory 'lib/lp/hardwaredb/doc'
=== added file 'lib/lp/hardwaredb/doc/__init__.py'
=== renamed file 'lib/canonical/launchpad/doc/hwdb-access.txt' => 'lib/lp/hardwaredb/doc/hwdb-access.txt'
--- lib/canonical/launchpad/doc/hwdb-access.txt 2009-08-14 13:03:36 +0000
+++ lib/lp/hardwaredb/doc/hwdb-access.txt 2010-02-10 23:32:22 +0000
@@ -34,7 +34,7 @@
34HWDriver34HWDriver
35--------35--------
3636
37 >>> from canonical.launchpad.interfaces.hwdb import IHWDriverSet37 >>> from lp.hardwaredb.interfaces.hwdb import IHWDriverSet
38 >>> login('test@canonical.com')38 >>> login('test@canonical.com')
39 >>> driver = getUtility(IHWDriverSet).search(name='sd')[0]39 >>> driver = getUtility(IHWDriverSet).search(name='sd')[0]
40 >>> logout()40 >>> logout()
@@ -71,7 +71,7 @@
71HWVendorID71HWVendorID
72----------72----------
7373
74 >>> from canonical.launchpad.interfaces.hwdb import HWBus, IHWVendorIDSet74 >>> from lp.hardwaredb.interfaces.hwdb import HWBus, IHWVendorIDSet
75 >>> login('test@canonical.com')75 >>> login('test@canonical.com')
76 >>> vendor_id = getUtility(IHWVendorIDSet).getByBusAndVendorID(76 >>> vendor_id = getUtility(IHWVendorIDSet).getByBusAndVendorID(
77 ... HWBus.PCI, '0x10de')77 ... HWBus.PCI, '0x10de')
@@ -85,7 +85,7 @@
85HWDevice85HWDevice
86--------86--------
8787
88 >>> from canonical.launchpad.interfaces.hwdb import IHWDeviceSet88 >>> from lp.hardwaredb.interfaces.hwdb import IHWDeviceSet
89 >>> login('test@canonical.com')89 >>> login('test@canonical.com')
90 >>> device = getUtility(IHWDeviceSet).getByDeviceID(90 >>> device = getUtility(IHWDeviceSet).getByDeviceID(
91 ... HWBus.PCI, '0x10de', '0x0455')91 ... HWBus.PCI, '0x10de', '0x0455')
@@ -115,7 +115,7 @@
115HWSubmissionDevice115HWSubmissionDevice
116------------------116------------------
117117
118 >>> from canonical.launchpad.interfaces.hwdb import IHWSubmissionDeviceSet118 >>> from lp.hardwaredb.interfaces.hwdb import IHWSubmissionDeviceSet
119 >>> login('test@canonical.com')119 >>> login('test@canonical.com')
120 >>> submission_device = getUtility(IHWSubmissionDeviceSet).get(1)120 >>> submission_device = getUtility(IHWSubmissionDeviceSet).get(1)
121 >>> logout()121 >>> logout()
@@ -129,7 +129,7 @@
129Methods of IHWDBApplication129Methods of IHWDBApplication
130---------------------------130---------------------------
131131
132 >>> from canonical.launchpad.interfaces.hwdb import IHWDBApplication132 >>> from lp.hardwaredb.interfaces.hwdb import IHWDBApplication
133 >>> app = getUtility(IHWDBApplication)133 >>> app = getUtility(IHWDBApplication)
134 >>> check_authorized_only_for_hwdb_team(app, 'numOwnersOfDevice')134 >>> check_authorized_only_for_hwdb_team(app, 'numOwnersOfDevice')
135 Access for launchpad.anonymous denied135 Access for launchpad.anonymous denied
136136
=== renamed file 'lib/canonical/launchpad/doc/hwdb-device-tables.txt' => 'lib/lp/hardwaredb/doc/hwdb-device-tables.txt'
--- lib/canonical/launchpad/doc/hwdb-device-tables.txt 2009-09-17 21:13:06 +0000
+++ lib/lp/hardwaredb/doc/hwdb-device-tables.txt 2010-02-10 23:32:22 +0000
@@ -1313,7 +1313,7 @@
1313Older HWDriver records may store None as the package name. We can1313Older HWDriver records may store None as the package name. We can
1314retrieve these records by passing None for package_name...1314retrieve these records by passing None for package_name...
13151315
1316 >>> from canonical.launchpad.database.hwdb import HWDriver1316 >>> from lp.hardwaredb.model.hwdb import HWDriver
1317 >>> old_driver = HWDriver(package_name=None, name=u'foo', license=None)1317 >>> old_driver = HWDriver(package_name=None, name=u'foo', license=None)
1318 >>> print old_driver.name1318 >>> print old_driver.name
1319 foo1319 foo
@@ -1486,7 +1486,7 @@
1486names. Note that the package name value None (used in older submissions)1486names. Note that the package name value None (used in older submissions)
1487is not included.1487is not included.
14881488
1489 >>> from canonical.launchpad.database.hwdb import HWDriver1489 >>> from lp.hardwaredb.model.hwdb import HWDriver
1490 >>> store.add(HWDriver(name='foo', package_name=None))1490 >>> store.add(HWDriver(name='foo', package_name=None))
1491 <HWDriver at...1491 <HWDriver at...
1492 >>> for package_name in driver_set.all_package_names():1492 >>> for package_name in driver_set.all_package_names():
@@ -1906,7 +1906,7 @@
1906 >>> factory.makeHWSubmissionDevice(1906 >>> factory.makeHWSubmissionDevice(
1907 ... submission, ide_disk, driver, first_device, 2)1907 ... submission, ide_disk, driver, first_device, 2)
1908 <HWSubmissionDevice at...1908 <HWSubmissionDevice at...
1909 >>> from canonical.launchpad.interfaces.hwdb import (1909 >>> from lp.hardwaredb.interfaces.hwdb import (
1910 ... HWSubmissionProcessingStatus)1910 ... HWSubmissionProcessingStatus)
1911 >>> # We consider only submissions in the status PROCESSED for1911 >>> # We consider only submissions in the status PROCESSED for
1912 >>> # statistics.1912 >>> # statistics.
19131913
=== renamed file 'lib/canonical/launchpad/doc/hwdb-submission.txt' => 'lib/lp/hardwaredb/doc/hwdb-submission.txt'
--- lib/canonical/launchpad/doc/hwdb-submission.txt 2009-05-04 18:05:32 +0000
+++ lib/lp/hardwaredb/doc/hwdb-submission.txt 2010-02-10 23:32:22 +0000
@@ -23,7 +23,7 @@
2323
24 >>> from StringIO import StringIO24 >>> from StringIO import StringIO
25 >>> from zope.component import getUtility25 >>> from zope.component import getUtility
26 >>> from canonical.launchpad.interfaces import IHWDBApplication26 >>> from lp.hardwaredb.interfaces.hwdb import IHWDBApplication
27 >>> data = StringIO('some data.')27 >>> data = StringIO('some data.')
28 >>> data.filename = 'hardware-info'28 >>> data.filename = 'hardware-info'
29 >>> form={'field.date_created': u'2007-08-01',29 >>> form={'field.date_created': u'2007-08-01',
@@ -222,13 +222,13 @@
222from a submission and sets the submission state to VALID. If any error222from a submission and sets the submission state to VALID. If any error
223occurs when a submission is processed, its status is set to INVALID and223occurs when a submission is processed, its status is set to INVALID and
224according error is logged. For details, see224according error is logged. For details, see
225lib/canonical/launchpad/scripts/tests/test_hwdb_submission_processing.py.225lp/hardwaredb/scripts/tests/test_hwdb_submission_processing.py.
226226
227We have currently three unprocessed submissions in the database, one227We have currently three unprocessed submissions in the database, one
228submission with the status PROCESSED and no submissions with the status228submission with the status PROCESSED and no submissions with the status
229INVALID.229INVALID.
230230
231 >>> from canonical.launchpad.interfaces.hwdb import (231 >>> from lp.hardwaredb.interfaces.hwdb import (
232 ... HWSubmissionProcessingStatus)232 ... HWSubmissionProcessingStatus)
233 >>> new_submissions = submission_set.getByStatus(233 >>> new_submissions = submission_set.getByStatus(
234 ... HWSubmissionProcessingStatus.SUBMITTED)234 ... HWSubmissionProcessingStatus.SUBMITTED)
235235
=== renamed file 'lib/canonical/launchpad/doc/hwdb.txt' => 'lib/lp/hardwaredb/doc/hwdb.txt'
--- lib/canonical/launchpad/doc/hwdb.txt 2009-07-13 09:13:16 +0000
+++ lib/lp/hardwaredb/doc/hwdb.txt 2010-02-10 23:32:22 +0000
@@ -8,7 +8,7 @@
8together with the following data:8together with the following data:
99
1010
11 >>> from canonical.launchpad.interfaces.hwdb import IHWSubmissionSet11 >>> from lp.hardwaredb.interfaces.hwdb import IHWSubmissionSet
12 >>> sample_submission = getUtility(IHWSubmissionSet).getBySubmissionKey(12 >>> sample_submission = getUtility(IHWSubmissionSet).getBySubmissionKey(
13 ... 'sample-submission')13 ... 'sample-submission')
1414
@@ -445,7 +445,7 @@
445IHWSubmissionSet.getByStatus(). Only the publicly visible445IHWSubmissionSet.getByStatus(). Only the publicly visible
446submissions are returned if no user is specified.446submissions are returned if no user is specified.
447447
448 >>> from canonical.launchpad.interfaces.hwdb import (448 >>> from lp.hardwaredb.interfaces.hwdb import (
449 ... HWSubmissionProcessingStatus)449 ... HWSubmissionProcessingStatus)
450 >>> def print_submissions(submissions):450 >>> def print_submissions(submissions):
451 ... for submission in submissions:451 ... for submission in submissions:
@@ -467,7 +467,7 @@
467If a user is passed, private submissions of this user are returned too.467If a user is passed, private submissions of this user are returned too.
468468
469 >>> login('test@canonical.com')469 >>> login('test@canonical.com')
470 >>> from canonical.launchpad.interfaces.hwdb import (470 >>> from lp.hardwaredb.interfaces.hwdb import (
471 ... HWSubmissionProcessingStatus)471 ... HWSubmissionProcessingStatus)
472 >>> new_submissions = hw_submission_set.getByStatus(472 >>> new_submissions = hw_submission_set.getByStatus(
473 ... HWSubmissionProcessingStatus.SUBMITTED, user=sample_person)473 ... HWSubmissionProcessingStatus.SUBMITTED, user=sample_person)
@@ -481,7 +481,7 @@
481481
482Submissions of other users are not returned.482Submissions of other users are not returned.
483483
484 >>> from canonical.launchpad.interfaces.hwdb import (484 >>> from lp.hardwaredb.interfaces.hwdb import (
485 ... HWSubmissionProcessingStatus)485 ... HWSubmissionProcessingStatus)
486 >>> new_submissions = hw_submission_set.getByStatus(486 >>> new_submissions = hw_submission_set.getByStatus(
487 ... HWSubmissionProcessingStatus.SUBMITTED, user=no_priv)487 ... HWSubmissionProcessingStatus.SUBMITTED, user=no_priv)
@@ -497,7 +497,7 @@
497497
498 >>> foobar = getUtility(IPersonSet).getByEmail('foo.bar@canonical.com')498 >>> foobar = getUtility(IPersonSet).getByEmail('foo.bar@canonical.com')
499 >>> login('foo.bar@canonical.com')499 >>> login('foo.bar@canonical.com')
500 >>> from canonical.launchpad.interfaces.hwdb import (500 >>> from lp.hardwaredb.interfaces.hwdb import (
501 ... HWSubmissionProcessingStatus)501 ... HWSubmissionProcessingStatus)
502 >>> new_submissions = hw_submission_set.getByStatus(502 >>> new_submissions = hw_submission_set.getByStatus(
503 ... HWSubmissionProcessingStatus.SUBMITTED, user=foobar)503 ... HWSubmissionProcessingStatus.SUBMITTED, user=foobar)
@@ -539,7 +539,7 @@
539IHWSubmissionBugSet.create().539IHWSubmissionBugSet.create().
540540
541 >>> from lp.bugs.interfaces.bug import IBugSet541 >>> from lp.bugs.interfaces.bug import IBugSet
542 >>> from canonical.launchpad.interfaces.hwdb import IHWSubmissionBugSet542 >>> from lp.hardwaredb.interfaces.hwdb import IHWSubmissionBugSet
543 >>> bug_one = getUtility(IBugSet).get(1)543 >>> bug_one = getUtility(IBugSet).get(1)
544 >>> submission_bug_set = getUtility(IHWSubmissionBugSet)544 >>> submission_bug_set = getUtility(IHWSubmissionBugSet)
545 >>> submission_bug = submission_bug_set.create(545 >>> submission_bug = submission_bug_set.create(
@@ -682,7 +682,7 @@
682If a device is specified, only those submissions that include682If a device is specified, only those submissions that include
683the device are returned.683the device are returned.
684684
685 >>> from canonical.launchpad.interfaces.hwdb import HWBus, IHWDeviceSet685 >>> from lp.hardwaredb.interfaces.hwdb import HWBus, IHWDeviceSet
686 >>> device_set = getUtility(IHWDeviceSet)686 >>> device_set = getUtility(IHWDeviceSet)
687 >>> msi_mainboard = device_set.getByDeviceID(687 >>> msi_mainboard = device_set.getByDeviceID(
688 ... HWBus.SYSTEM, 'MSI', 'MS-7369')688 ... HWBus.SYSTEM, 'MSI', 'MS-7369')
@@ -693,7 +693,7 @@
693If a driver is specified, only those submissions for that driver693If a driver is specified, only those submissions for that driver
694are returned.694are returned.
695695
696 >>> from canonical.launchpad.interfaces.hwdb import IHWDriverSet696 >>> from lp.hardwaredb.interfaces.hwdb import IHWDriverSet
697 >>> driver_set = getUtility(IHWDriverSet)697 >>> driver_set = getUtility(IHWDriverSet)
698 >>> ehci_driver = driver_set.getByPackageAndName(698 >>> ehci_driver = driver_set.getByPackageAndName(
699 ... 'linux-image-2.6.24-19-generic', 'ehci_hcd')699 ... 'linux-image-2.6.24-19-generic', 'ehci_hcd')
700700
=== added directory 'lib/lp/hardwaredb/interfaces'
=== added file 'lib/lp/hardwaredb/interfaces/__init__.py'
=== renamed file 'lib/canonical/launchpad/interfaces/hwdb.py' => 'lib/lp/hardwaredb/interfaces/hwdb.py'
=== added directory 'lib/lp/hardwaredb/model'
=== added file 'lib/lp/hardwaredb/model/__init__.py'
=== renamed file 'lib/canonical/launchpad/database/hwdb.py' => 'lib/lp/hardwaredb/model/hwdb.py'
--- lib/canonical/launchpad/database/hwdb.py 2009-08-14 13:03:36 +0000
+++ lib/lp/hardwaredb/model/hwdb.py 2010-02-10 23:32:22 +0000
@@ -55,7 +55,7 @@
55from lp.registry.model.person import Person55from lp.registry.model.person import Person
56from lp.registry.model.teammembership import TeamParticipation56from lp.registry.model.teammembership import TeamParticipation
57from lp.soyuz.interfaces.distroarchseries import IDistroArchSeries57from lp.soyuz.interfaces.distroarchseries import IDistroArchSeries
58from canonical.launchpad.interfaces.hwdb import (58from lp.hardwaredb.interfaces.hwdb import (
59 HWBus, HWSubmissionFormat, HWSubmissionKeyNotUnique,59 HWBus, HWSubmissionFormat, HWSubmissionKeyNotUnique,
60 HWSubmissionProcessingStatus, IHWDevice, IHWDeviceClass,60 HWSubmissionProcessingStatus, IHWDevice, IHWDeviceClass,
61 IHWDeviceClassSet, IHWDeviceDriverLink, IHWDeviceDriverLinkSet,61 IHWDeviceClassSet, IHWDeviceDriverLink, IHWDeviceDriverLinkSet,
6262
=== added directory 'lib/lp/hardwaredb/scripts'
=== added file 'lib/lp/hardwaredb/scripts/__init__.py'
=== renamed file 'lib/canonical/launchpad/scripts/hwdbsubmissions.py' => 'lib/lp/hardwaredb/scripts/hwdbsubmissions.py'
--- lib/canonical/launchpad/scripts/hwdbsubmissions.py 2009-11-05 15:12:46 +0000
+++ lib/lp/hardwaredb/scripts/hwdbsubmissions.py 2010-02-10 23:32:22 +0000
@@ -36,7 +36,7 @@
36from canonical.cachedproperty import cachedproperty36from canonical.cachedproperty import cachedproperty
37from canonical.config import config37from canonical.config import config
38from canonical.librarian.interfaces import LibrarianServerError38from canonical.librarian.interfaces import LibrarianServerError
39from canonical.launchpad.interfaces.hwdb import (39from lp.hardwaredb.interfaces.hwdb import (
40 HWBus, HWSubmissionProcessingStatus, IHWDeviceDriverLinkSet, IHWDeviceSet,40 HWBus, HWSubmissionProcessingStatus, IHWDeviceDriverLinkSet, IHWDeviceSet,
41 IHWDriverSet, IHWSubmissionDeviceSet, IHWSubmissionSet, IHWVendorIDSet,41 IHWDriverSet, IHWSubmissionDeviceSet, IHWSubmissionSet, IHWVendorIDSet,
42 IHWVendorNameSet)42 IHWVendorNameSet)
4343
=== added directory 'lib/lp/hardwaredb/scripts/tests'
=== renamed file 'lib/canonical/launchpad/scripts/tests/real_hwdb_submission.xml.bz2' => 'lib/lp/hardwaredb/scripts/tests/real_hwdb_submission.xml.bz2'
=== renamed file 'lib/canonical/launchpad/scripts/tests/test_hwdb_submission_validation.py' => 'lib/lp/hardwaredb/scripts/tests/test_hwdb_submission_validation.py'
--- lib/canonical/launchpad/scripts/tests/test_hwdb_submission_validation.py 2009-09-14 17:38:57 +0000
+++ lib/lp/hardwaredb/scripts/tests/test_hwdb_submission_validation.py 2010-02-10 23:32:22 +0000
@@ -12,7 +12,7 @@
12from zope.testing.loghandler import Handler12from zope.testing.loghandler import Handler
1313
14from canonical.config import config14from canonical.config import config
15from canonical.launchpad.scripts.hwdbsubmissions import SubmissionParser15from lp.hardwaredb.scripts.hwdbsubmissions import SubmissionParser
16from canonical.testing import BaseLayer16from canonical.testing import BaseLayer
1717
1818
1919
=== added directory 'lib/lp/hardwaredb/stories'
=== added file 'lib/lp/hardwaredb/stories/__init__.py'
=== added directory 'lib/lp/hardwaredb/stories/hwdb'
=== renamed file 'lib/canonical/launchpad/pagetests/hwdb/01-submit-data.txt' => 'lib/lp/hardwaredb/stories/hwdb/01-submit-data.txt'
=== renamed file 'lib/canonical/launchpad/pagetests/hwdb/02-view-submissions.txt' => 'lib/lp/hardwaredb/stories/hwdb/02-view-submissions.txt'
=== added directory 'lib/lp/hardwaredb/stories/webservice'
=== renamed file 'lib/canonical/launchpad/pagetests/webservice/xx-hwdb.txt' => 'lib/lp/hardwaredb/stories/webservice/xx-hwdb.txt'
--- lib/canonical/launchpad/pagetests/webservice/xx-hwdb.txt 2009-08-21 19:49:18 +0000
+++ lib/lp/hardwaredb/stories/webservice/xx-hwdb.txt 2010-02-10 23:32:22 +0000
@@ -226,7 +226,7 @@
226226
227 >>> from zope.component import getUtility227 >>> from zope.component import getUtility
228 >>> from canonical.launchpad.ftests import login, logout, ANONYMOUS228 >>> from canonical.launchpad.ftests import login, logout, ANONYMOUS
229 >>> from canonical.launchpad.interfaces.hwdb import IHWDriverSet229 >>> from lp.hardwaredb.interfaces.hwdb import IHWDriverSet
230 >>> login(ANONYMOUS)230 >>> login(ANONYMOUS)
231 >>> driver_set = getUtility(IHWDriverSet)231 >>> driver_set = getUtility(IHWDriverSet)
232 >>> # A typical graphics card driver232 >>> # A typical graphics card driver
233233
=== added directory 'lib/lp/hardwaredb/templates'
=== added file 'lib/lp/hardwaredb/templates/__init__.py'
=== renamed file 'lib/canonical/launchpad/templates/hwdb-fingerprint-submissions.pt' => 'lib/lp/hardwaredb/templates/hwdb-fingerprint-submissions.pt'
=== renamed file 'lib/canonical/launchpad/templates/hwdb-submit-hardware-data.pt' => 'lib/lp/hardwaredb/templates/hwdb-submit-hardware-data.pt'
=== renamed file 'lib/canonical/launchpad/templates/person-hwdb-submissions.pt' => 'lib/lp/hardwaredb/templates/person-hwdb-submissions.pt'
=== added directory 'lib/lp/hardwaredb/tests'
=== added file 'lib/lp/hardwaredb/tests/__init__.py'
=== added file 'lib/lp/hardwaredb/tests/test_doc.py'
--- lib/lp/hardwaredb/tests/test_doc.py 1970-01-01 00:00:00 +0000
+++ lib/lp/hardwaredb/tests/test_doc.py 2010-02-10 23:32:22 +0000
@@ -0,0 +1,36 @@
1# Copyright 2010 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).
3
4"""
5Run the doctests and pagetests.
6"""
7
8import os
9
10from canonical.launchpad.testing.systemdocs import (
11 LayeredDocFileSuite, setUp, tearDown)
12from canonical.testing import (
13 LaunchpadFunctionalLayer, LaunchpadZopelessLayer)
14
15from lp.services.testing import build_test_suite
16
17
18here = os.path.dirname(os.path.realpath(__file__))
19
20
21def hwdbDeviceTablesSetup(test):
22 setUp(test)
23 LaunchpadZopelessLayer.switchDbUser('hwdb-submission-processor')
24
25
26special = {
27 'hwdb-device-tables.txt': LayeredDocFileSuite(
28 '../doc/hwdb-device-tables.txt',
29 setUp=hwdbDeviceTablesSetup,
30 tearDown=tearDown,
31 layer=LaunchpadZopelessLayer),
32 }
33
34
35def test_suite():
36 return build_test_suite(here, special, layer=LaunchpadFunctionalLayer)
037
=== modified file 'lib/lp/registry/model/person.py'
--- lib/lp/registry/model/person.py 2010-02-08 14:37:50 +0000
+++ lib/lp/registry/model/person.py 2010-02-10 23:32:22 +0000
@@ -2356,7 +2356,7 @@
2356 @property2356 @property
2357 def hardware_submissions(self):2357 def hardware_submissions(self):
2358 """See `IPerson`."""2358 """See `IPerson`."""
2359 from canonical.launchpad.database.hwdb import HWSubmissionSet2359 from lp.hardwaredb.model.hwdb import HWSubmissionSet
2360 return HWSubmissionSet().search(owner=self)2360 return HWSubmissionSet().search(owner=self)
23612361
23622362
23632363
=== modified file 'lib/lp/scripts/utilities/sanitizedb.py'
--- lib/lp/scripts/utilities/sanitizedb.py 2009-12-03 04:50:40 +0000
+++ lib/lp/scripts/utilities/sanitizedb.py 2010-02-10 23:32:22 +0000
@@ -12,7 +12,7 @@
12import subprocess12import subprocess
13import sys13import sys
1414
15from storm.locals import Or, Not15from storm.locals import Or
16import transaction16import transaction
17from zope.component import getUtility17from zope.component import getUtility
1818
@@ -278,7 +278,7 @@
278278
279 def removePrivateHwSubmissions(self):279 def removePrivateHwSubmissions(self):
280 """Remove all private hardware submissions."""280 """Remove all private hardware submissions."""
281 from canonical.launchpad.database.hwdb import HWSubmission281 from lp.hardwaredb.model.hwdb import HWSubmission
282 count = self.store.find(282 count = self.store.find(
283 HWSubmission, HWSubmission.private == True).remove()283 HWSubmission, HWSubmission.private == True).remove()
284 self.store.flush()284 self.store.flush()
@@ -529,7 +529,7 @@
529 sql = match.group(0)529 sql = match.group(0)
530530
531 # Drop the existing constraint so we can recreate it.531 # Drop the existing constraint so we can recreate it.
532 drop_sql = 'ALTER TABLE %s DROP CONSTRAINT %s;' % (532 drop_sql = 'ALTER TABLE %s DROP CONSTRAINT %s;' % (
533 table, constraint)533 table, constraint)
534 restore_sql.append(drop_sql)534 restore_sql.append(drop_sql)
535 cascade_sql.append(drop_sql)535 cascade_sql.append(drop_sql)
@@ -604,4 +604,3 @@
604 def _fail(self, error_message):604 def _fail(self, error_message):
605 self.logger.fatal(error_message)605 self.logger.fatal(error_message)
606 sys.exit(1)606 sys.exit(1)
607
608607
=== modified file 'lib/lp/testing/factory.py'
--- lib/lp/testing/factory.py 2010-02-05 15:06:28 +0000
+++ lib/lp/testing/factory.py 2010-02-10 23:32:22 +0000
@@ -67,7 +67,7 @@
67from canonical.launchpad.interfaces.emailaddress import (67from canonical.launchpad.interfaces.emailaddress import (
68 EmailAddressStatus, IEmailAddressSet)68 EmailAddressStatus, IEmailAddressSet)
69from canonical.launchpad.interfaces.gpghandler import IGPGHandler69from canonical.launchpad.interfaces.gpghandler import IGPGHandler
70from canonical.launchpad.interfaces.hwdb import (70from lp.hardwaredb.interfaces.hwdb import (
71 HWSubmissionFormat, IHWDeviceDriverLinkSet, IHWSubmissionDeviceSet,71 HWSubmissionFormat, IHWDeviceDriverLinkSet, IHWSubmissionDeviceSet,
72 IHWSubmissionSet)72 IHWSubmissionSet)
73from canonical.launchpad.interfaces.launchpad import ILaunchpadCelebrities73from canonical.launchpad.interfaces.launchpad import ILaunchpadCelebrities
7474
=== modified file 'utilities/migrater/migrater.py'
--- utilities/migrater/migrater.py 2009-10-16 15:00:22 +0000
+++ utilities/migrater/migrater.py 2010-02-10 23:32:22 +0000
@@ -34,6 +34,7 @@
34 tes='testing',34 tes='testing',
35 tra='translations',35 tra='translations',
36 pkg='registry',36 pkg='registry',
37 hdb='hardwaredb',
37 )38 )
3839
39RENAME_MAP = dict(40RENAME_MAP = dict(
@@ -342,8 +343,10 @@
342 code = ''.join(special_lines)343 code = ''.join(special_lines)
343 helper_pattern = re.compile(r'\b(setUp|tearDown)=(\w*)\b')344 helper_pattern = re.compile(r'\b(setUp|tearDown)=(\w*)\b')
344 helpers = set(match.group(2) for match in helper_pattern.finditer(code))345 helpers = set(match.group(2) for match in helper_pattern.finditer(code))
345 helpers.remove('setUp')346 if 'setUp' in helpers:
346 helpers.remove('tearDown')347 helpers.remove('setUp')
348 if 'tearDown' in helpers:
349 helpers.remove('tearDown')
347 # Extract the setup and teardown functions.350 # Extract the setup and teardown functions.
348 lines = list(system_doc_lines)351 lines = list(system_doc_lines)
349 system_doc_lines = []352 system_doc_lines = []