~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/soyuz/model/distributionjob.py

Switch to the JSON property raises other issues; reverting for now.

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
from storm.locals import (
14
14
    And,
15
15
    Int,
16
 
    JSON,
17
16
    Reference,
 
17
    Unicode,
18
18
    )
19
19
from zope.interface import implements
20
20
 
52
52
 
53
53
    job_type = EnumCol(enum=DistributionJobType, notNull=True)
54
54
 
55
 
    metadata = JSON('json_data')
 
55
    _json_data = Unicode('json_data')
56
56
 
57
57
    def __init__(self, distribution, distroseries, job_type, metadata):
58
58
        super(DistributionJob, self).__init__()
60
60
        self.distribution = distribution
61
61
        self.distroseries = distroseries
62
62
        self.job_type = job_type
63
 
        self.metadata = metadata
 
63
        self._json_data = self.serializeMetadata(metadata)
64
64
 
65
65
    @classmethod
66
66
    def serializeMetadata(cls, metadata_dict):
67
67
        """Serialize a dict of metadata into a unicode string."""
68
68
        return simplejson.dumps(metadata_dict).decode('utf-8')
69
69
 
 
70
    @property
 
71
    def metadata(self):
 
72
        return simplejson.loads(self._json_data)
 
73
 
70
74
 
71
75
class DistributionJobDerived(BaseRunnableJob):
72
76
    """Abstract class for deriving from DistributionJob."""