def _get_converted_model(self, service, user_version, user_data, config):
user_raw = BytesIO()
# Write user container header to user_raw.
pk = msgpack.Packer()
user_raw.write(pk.pack_array_header(2))
user_raw.write(pk.pack(user_version))
user_raw.write(pk.pack_array_header(len(user_data)))
# Write user_data to user_raw.
for d in user_data:
user_raw.write(d.getvalue())
# Create transformed model.
m1 = self._m
m2 = JubaModel()
m2.header = copy.deepcopy(m1.header)
m2.system = copy.deepcopy(m1.system)
m2.system.type = service
m2.system.config = json.dumps(config)
m2._user_raw = user_raw.getvalue()
m2.user = JubaModel.UserContainer.loads(m2._user_raw)
# Recompute CRC32 checksum and field lengths.
m2.fix_header()
return m2
评论列表
文章目录