Merge ~cjwatson/launchpad:stormify-processor into launchpad:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: 52c54a14d20100c5680a5372e7f653375feff12b
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/launchpad:stormify-processor
Merge into: launchpad:master
Diff against target: 148 lines (+41/-18)
5 files modified
lib/lp/buildmaster/model/processor.py (+31/-9)
lib/lp/buildmaster/stories/builder-views.rst (+4/-3)
lib/lp/buildmaster/vocabularies.py (+3/-3)
lib/lp/services/webapp/vocabulary.py (+1/-1)
lib/lp/soyuz/doc/soyuz-set-of-uploads.rst (+2/-2)
Reviewer Review Type Date Requested Status
Guruprasad Approve
Review via email: mp+450566@code.launchpad.net

Commit message

Convert Processor to Storm

To post a comment you must log in.
Revision history for this message
Guruprasad (lgp171188) wrote :

LGTM 👍

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/lib/lp/buildmaster/model/processor.py b/lib/lp/buildmaster/model/processor.py
2index 15a3871..c6e91bc 100644
3--- a/lib/lp/buildmaster/model/processor.py
4+++ b/lib/lp/buildmaster/model/processor.py
5@@ -6,7 +6,7 @@ __all__ = [
6 "ProcessorSet",
7 ]
8
9-from storm.locals import Bool
10+from storm.locals import Bool, Int, Unicode
11 from zope.interface import implementer
12
13 from lp.buildmaster.interfaces.processor import (
14@@ -14,18 +14,20 @@ from lp.buildmaster.interfaces.processor import (
15 IProcessorSet,
16 ProcessorNotFound,
17 )
18+from lp.services.database.constants import DEFAULT
19 from lp.services.database.interfaces import IStore
20-from lp.services.database.sqlbase import SQLBase
21-from lp.services.database.sqlobject import StringCol
22+from lp.services.database.stormbase import StormBase
23
24
25 @implementer(IProcessor)
26-class Processor(SQLBase):
27- _table = "Processor"
28+class Processor(StormBase):
29+ __storm_table__ = "Processor"
30
31- name = StringCol(dbName="name", notNull=True)
32- title = StringCol(dbName="title", notNull=True)
33- description = StringCol(dbName="description", notNull=True)
34+ id = Int(primary=True)
35+
36+ name = Unicode(name="name", allow_none=False)
37+ title = Unicode(name="title", allow_none=False)
38+ description = Unicode(name="description", allow_none=False)
39 restricted = Bool(allow_none=False, default=False)
40
41 # When setting this to true you may want to add missing
42@@ -41,6 +43,25 @@ class Processor(SQLBase):
43 # changed on an existing processor.
44 supports_nonvirtualized = Bool(allow_none=False, default=True)
45
46+ def __init__(
47+ self,
48+ name,
49+ title,
50+ description,
51+ restricted=DEFAULT,
52+ build_by_default=DEFAULT,
53+ supports_virtualized=DEFAULT,
54+ supports_nonvirtualized=DEFAULT,
55+ ):
56+ super().__init__()
57+ self.name = name
58+ self.title = title
59+ self.description = description
60+ self.restricted = restricted
61+ self.build_by_default = build_by_default
62+ self.supports_virtualized = supports_virtualized
63+ self.supports_nonvirtualized = supports_nonvirtualized
64+
65 def __repr__(self):
66 return "<Processor %r>" % self.title
67
68@@ -73,7 +94,7 @@ class ProcessorSet:
69 supports_nonvirtualized=True,
70 ):
71 """See `IProcessorSet`."""
72- return Processor(
73+ processor = Processor(
74 name=name,
75 title=title,
76 description=description,
77@@ -82,3 +103,4 @@ class ProcessorSet:
78 supports_virtualized=supports_virtualized,
79 supports_nonvirtualized=supports_nonvirtualized,
80 )
81+ return IStore(Processor).add(processor)
82diff --git a/lib/lp/buildmaster/stories/builder-views.rst b/lib/lp/buildmaster/stories/builder-views.rst
83index ad45813..7ff220b 100644
84--- a/lib/lp/buildmaster/stories/builder-views.rst
85+++ b/lib/lp/buildmaster/stories/builder-views.rst
86@@ -273,9 +273,10 @@ architectures.
87 >>> cprov = getUtility(IPersonSet).getByName("cprov")
88
89 >>> from lp.buildmaster.model.processor import Processor
90- >>> i386 = Processor.selectOneBy(name="386")
91- >>> amd64 = Processor.selectOneBy(name="amd64")
92- >>> hppa = Processor.selectOneBy(name="hppa")
93+ >>> from lp.services.database.interfaces import IStore
94+ >>> i386 = IStore(Processor).find(Processor, name="386").one()
95+ >>> amd64 = IStore(Processor).find(Processor, name="amd64").one()
96+ >>> hppa = IStore(Processor).find(Processor, name="hppa").one()
97
98 >>> ignored = factory.makeBuilder(
99 ... name="hamburger", processors=[i386], virtualized=True
100diff --git a/lib/lp/buildmaster/vocabularies.py b/lib/lp/buildmaster/vocabularies.py
101index d6a439c..31acd16 100644
102--- a/lib/lp/buildmaster/vocabularies.py
103+++ b/lib/lp/buildmaster/vocabularies.py
104@@ -18,13 +18,13 @@ from lp.buildmaster.model.processor import Processor
105 from lp.services.database.interfaces import IStore
106 from lp.services.database.stormexpr import Concatenate
107 from lp.services.propertycache import cachedproperty
108-from lp.services.webapp.vocabulary import NamedSQLObjectVocabulary
109+from lp.services.webapp.vocabulary import NamedStormVocabulary
110
111
112-class ProcessorVocabulary(NamedSQLObjectVocabulary):
113+class ProcessorVocabulary(NamedStormVocabulary):
114 displayname = "Select a processor"
115 _table = Processor
116- _orderBy = "name"
117+ _order_by = "name"
118
119
120 @implementer(IVocabularyTokenized)
121diff --git a/lib/lp/services/webapp/vocabulary.py b/lib/lp/services/webapp/vocabulary.py
122index 294dd8c..535588c 100644
123--- a/lib/lp/services/webapp/vocabulary.py
124+++ b/lib/lp/services/webapp/vocabulary.py
125@@ -440,7 +440,7 @@ class StormVocabularyBase(FilteredVocabularyBase):
126 should derive from StormVocabularyBase.
127 """
128
129- _order_by = None
130+ _order_by = None # type: Optional[str]
131 _clauses = []
132
133 def __init__(self, context=None):
134diff --git a/lib/lp/soyuz/doc/soyuz-set-of-uploads.rst b/lib/lp/soyuz/doc/soyuz-set-of-uploads.rst
135index 0355122..2cda351 100644
136--- a/lib/lp/soyuz/doc/soyuz-set-of-uploads.rst
137+++ b/lib/lp/soyuz/doc/soyuz-set-of-uploads.rst
138@@ -563,8 +563,8 @@ In order to verify if the binary ancestry lookup algorithm works we
139 will need to build a new DistroArchSeries for powerpc in
140 ubuntutest/breezy.
141
142- >>> from lp.buildmaster.model.processor import Processor
143- >>> powerpc = Processor(
144+ >>> from lp.buildmaster.interfaces.processor import IProcessorSet
145+ >>> powerpc = getUtility(IProcessorSet).new(
146 ... name="powerpc", title="PowerPC G3/G4", description="G3/G4"
147 ... )
148 >>> powerpc_dar = breezy.newArch("powerpc", powerpc, True, breezy.owner)

Subscribers

People subscribed via source and target branches

to status/vote changes: