~launchpad-results/launchpad-results/trunk

« back to all changes in this revision

Viewing changes to lib/lpresults/hardware/models/processor.py

  • Committer: Marc Tardif
  • Date: 2011-09-28 15:18:09 UTC
  • Revision ID: marc.tardif@canonical.com-20110928151809-rwn04clcebacbnfm
Added processor states for system units.

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
 
6
6
__all__ = [
7
7
    "Processor",
 
8
    "processor_set",
8
9
    ]
9
10
 
10
11
from storm.locals import (
11
12
    AutoReload,
12
13
    Int,
13
 
    RawStr,
14
14
    Reference,
15
15
    Unicode,
16
16
    )
17
17
 
18
18
from zope.interface import implements
19
19
 
20
 
from lpresults.hardware.interfaces.processor import IProcessor
21
 
from lpresults.hardware.models.processorplatform import ProcessorPlatform
22
 
 
23
 
 
24
 
class Processor:
 
20
from lpresults.hardware.interfaces.processor import (
 
21
    IProcessor,
 
22
    IProcessorSet,
 
23
    )
 
24
from lpresults.hardware.models.processorplatform import (
 
25
    ProcessorPlatform,
 
26
    HasProcessorPlatformMixin,
 
27
    )
 
28
from lpresults.hardware.models.store import get_hardware_store
 
29
 
 
30
 
 
31
class Processor(HasProcessorPlatformMixin):
25
32
 
26
33
    __storm_table__ = "processor"
27
34
 
28
35
    implements(IProcessor)
29
36
 
30
37
    id = Int(primary=True, allow_none=False, default=AutoReload)
31
 
    platform_id = Int(allow_none=False)
32
 
    type = RawStr(allow_none=False)
33
 
    model = RawStr(allow_none=False)
34
 
    model_number = RawStr(allow_none=False)
35
 
    model_version = RawStr(allow_none=False)
36
 
    model_revision = RawStr(allow_none=False)
 
38
    platform_id = Int(name="platform", allow_none=False)
 
39
    make = Unicode(allow_none=False)
 
40
    model = Unicode(allow_none=False)
 
41
    model_number = Unicode(allow_none=False)
 
42
    model_version = Unicode(allow_none=False)
 
43
    model_revision = Unicode(allow_none=False)
37
44
    cache = Int(allow_none=False)
38
 
    bogomips = Int(allow_none=False)
39
 
    speed = Int(allow_none=False)
40
45
    other = Unicode(allow_none=False)
41
46
 
42
47
    platform = Reference(platform_id, ProcessorPlatform.id)
43
48
 
44
 
    def __init__(self, platform, type, model, model_number, model_version,
45
 
            model_revision, cache, bogomips, speed, other):
 
49
    def __init__(self, platform, make, model, model_number,
 
50
            model_version, model_revision, cache, other):
46
51
        self.platform = platform
47
 
        self.type = type
 
52
        self.make = make
48
53
        self.model = model
49
54
        self.model_number = model_number
50
55
        self.model_version = model_version
51
56
        self.model_revision = model_revision
52
57
        self.cache = cache
53
 
        self.bogomips = bogomips
54
 
        self.speed = speed
55
58
        self.other = other
 
59
 
 
60
 
 
61
class ProcessorSet:
 
62
 
 
63
    implements(IProcessorSet)
 
64
 
 
65
    def get(self, id):
 
66
        """See `IProcessorSet`."""
 
67
        return get_hardware_store().get(Processor, id)
 
68
 
 
69
    def getByName(
 
70
        self, platform_name, make, model, model_number, model_version,
 
71
        model_revision, cache, other):
 
72
        """See `IProcessorSet`."""
 
73
        store = get_hardware_store()
 
74
        platform = store.find(ProcessorPlatform, name=platform_name).one()
 
75
        if not platform:
 
76
            platform = ProcessorPlatform(platform_name)
 
77
 
 
78
        processor = store.find(
 
79
            Processor, platform=platform, make=make, model=model,
 
80
            model_number=model_number, model_version=model_version,
 
81
            model_revision=model_revision, cache=cache, other=other).one()
 
82
        if not processor:
 
83
            processor = Processor(
 
84
                platform, make, model, model_number, model_version,
 
85
                model_revision, cache, other)
 
86
 
 
87
        return processor
 
88
 
 
89
 
 
90
processor_set = ProcessorSet()