github.com/hernad/nomad@v1.6.112/ui/mirage/serializers/allocation.js (about) 1 /** 2 * Copyright (c) HashiCorp, Inc. 3 * SPDX-License-Identifier: MPL-2.0 4 */ 5 6 import ApplicationSerializer from './application'; 7 import { arrToObj } from '../utils'; 8 9 export default ApplicationSerializer.extend({ 10 embed: true, 11 include: ['taskStates', 'taskResources'], 12 13 serialize() { 14 var json = ApplicationSerializer.prototype.serialize.apply(this, arguments); 15 if (json instanceof Array) { 16 json.forEach(serializeAllocation); 17 } else { 18 serializeAllocation(json); 19 } 20 return json; 21 }, 22 }); 23 24 function serializeAllocation(allocation) { 25 allocation.TaskStates = allocation.TaskStates.reduce(arrToObj('Name'), {}); 26 const { Ports, Networks } = allocation.TaskResources[0] 27 ? allocation.TaskResources[0].Resources 28 : {}; 29 allocation.AllocatedResources = { 30 Shared: { Ports, Networks }, 31 Tasks: allocation.TaskResources.map(({ Name, Resources }) => ({ Name, ...Resources })).reduce( 32 arrToObj('Name'), 33 {} 34 ), 35 }; 36 }