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  }