def save_messages(self, msgs):
        msg_ids = ['.'.join(msg['id']) for msg in msgs]
        cache.set('validation.job_id:%s' % self.job_id, msg_ids)
        for msg, key in zip(msgs, msg_ids):
            if isinstance(msg['description'], list):
                des = []
                for _m in msg['description']:
                    if isinstance(_m, list):
                        for x in _m:
                            des.append(x)
                    else:
                        des.append(_m)
                des = '; '.join(des)
            else:
                des = msg['description']
            cache.set('validation.msg_key:' + key,
                      {'long_message': des,
                       'message': msg['message'],
                       'type': msg.get('compatibility_type',
                                       msg.get('type'))
                       })
            aa = ('validation.job_id:%s.msg_key:%s:addons_affected'
                  % (self.job_id, key))
            try:
                cache.incr(aa)
            except __HOLE__:
                cache.set(aa, 1)
dataset/ETHPy150Open mozilla/addons-server/src/olympia/zadmin/models.py/ValidationJobTally.save_messages