open-nomad/ui/app/serializers/agent.js

50 lines
1.2 KiB
JavaScript
Raw Normal View History

2017-09-19 14:47:10 +00:00
import ApplicationSerializer from './application';
import AdapterError from '@ember-data/adapter/error';
2017-09-19 14:47:10 +00:00
export default class AgentSerializer extends ApplicationSerializer {
attrs = {
2017-09-19 14:47:10 +00:00
datacenter: 'dc',
address: 'Addr',
serfPort: 'Port',
};
2017-09-19 14:47:10 +00:00
normalize(typeHash, hash) {
2017-09-28 17:47:02 +00:00
if (!hash) {
// It's unusual to throw an adapter error from a serializer,
// but there is no single server end point so the serializer
// acts like the API in this case.
const error = new AdapterError([{ status: '404' }]);
2021-12-28 16:08:12 +00:00
error.message =
'Requested Agent was not found in set of available Agents';
2017-09-28 17:47:02 +00:00
throw error;
}
2017-09-19 14:47:10 +00:00
hash.ID = hash.Name;
hash.Datacenter = hash.Tags && hash.Tags.dc;
hash.Region = hash.Tags && hash.Tags.region;
hash.RpcPort = hash.Tags && hash.Tags.port;
return super.normalize(typeHash, hash);
}
2017-09-19 14:47:10 +00:00
normalizeResponse(store, typeClass, hash, ...args) {
2021-12-28 16:08:12 +00:00
return super.normalizeResponse(
store,
typeClass,
hash.Members || [],
...args
);
}
2017-09-19 14:47:10 +00:00
normalizeSingleResponse(store, typeClass, hash, id, ...args) {
2021-12-28 16:08:12 +00:00
return super.normalizeSingleResponse(
store,
typeClass,
hash.findBy('Name', id),
id,
...args
);
}
}