open-nomad/ui/app/serializers/network.js
2019-09-04 09:39:56 -05:00

37 lines
756 B
JavaScript

import ApplicationSerializer from './application';
import isIp from 'is-ip';
export default ApplicationSerializer.extend({
attrs: {
cidr: 'CIDR',
ip: 'IP',
mbits: 'MBits',
},
normalize(typeHash, hash) {
const ip = hash.IP;
if (isIp.v6(ip)) {
hash.IP = `[${ip}]`;
}
const reservedPorts = (hash.ReservedPorts || []).map(port => ({
name: port.Label,
port: port.Value,
to: port.To,
isDynamic: false,
}));
const dynamicPorts = (hash.DynamicPorts || []).map(port => ({
name: port.Label,
port: port.Value,
to: port.To,
isDynamic: true,
}));
hash.Ports = reservedPorts.concat(dynamicPorts).sortBy('name');
return this._super(...arguments);
},
});