open-consul/ui-v2/app/adapters/node.js
John Cowen 0f14574ba3
ui: Leader API polling (#8814)
* Allow configuring a datasource to poll instead of block

* Add 30 second polling to the leader API request
2020-10-06 14:26:44 +01:00

43 lines
1.2 KiB
JavaScript

import Adapter from './application';
// TODO: Update to use this.formatDatacenter()
export default Adapter.extend({
requestForQuery: function(request, { dc, index, id, uri }) {
return request`
GET /v1/internal/ui/nodes?${{ dc }}
X-Request-ID: ${uri}
${{ index }}
`;
},
requestForQueryRecord: function(request, { dc, index, id, uri }) {
if (typeof id === 'undefined') {
throw new Error('You must specify an id');
}
return request`
GET /v1/internal/ui/node/${id}?${{ dc }}
X-Request-ID: ${uri}
${{ index }}
`;
},
requestForQueryLeader: function(request, { dc, uri }) {
return request`
GET /v1/status/leader?${{ dc }}
X-Request-ID: ${uri}
Refresh: 30
`;
},
queryLeader: function(store, type, id, snapshot) {
return this.rpc(
function(adapter, request, serialized, unserialized) {
return adapter.requestForQueryLeader(request, serialized, unserialized);
},
function(serializer, respond, serialized, unserialized) {
return serializer.respondForQueryLeader(respond, serialized, unserialized);
},
snapshot,
type.modelName
);
},
});