}, function (err) { if (err) return callback(err); if (!consumerData.next) // no next link --> we're done return callback(null); // Continue with next batch; get fresh, as we deleted the other ones. wipeConsumerBatch(consumerUrl, callback); });
utils.kongGetConsumerByName(username, function (err, kongConsumer) { if (err) { // Gracefully accept if already deleted if (err.status === 404) { warn(`Attempted to delete non-present consumer with username ${username}`); return callback(null); } return callback(err); } info(`Deleting consumer with username ${username} (id ${kongConsumer.id})`); utils.kongDeleteConsumer(kongConsumer.id, callback); });
}, function (err, results) { if (err) return done(err); const portalApis = results.portalApis as ApiDescriptionCollection; const kongApis = results.kongApis as KongApiConfigCollection; const todoLists = assembleApiTodoLists(portalApis, kongApis); debug('Infos on sync APIs todo list:'); debug(' add items: ' + todoLists.addList.length); debug(' update items: ' + todoLists.updateList.length); debug(' delete items: ' + todoLists.deleteList.length); //debug(utils.getText(todoLists)); async.series({ updateApis: function (callback) { // Will call syncPlugins kong.updateKongApis(sync, todoLists.updateList, callback); }, deleteApis: function (callback) { kong.deleteKongApis(todoLists.deleteList, callback); }, addApis: function (callback) { kong.addKongApis(todoLists.addList, callback); } }, function (err) { if (err) return done(err); debug("syncApis() finished."); return done(null); }); });
utils.kongGetConsumersByCustomId(customId, function (err, consumerList) { if (err) return callback(err); // Gracefully accept if already deleted if (consumerList.data.length <= 0) { warn('Could not find user with custom_id ' + customId + ', cannot delete'); return callback(null); } if (consumerList.data.length > 1) warn('Multiple consumers with custom_id ' + customId + ' found, killing them all.'); // This should be just one call, but the consumer is in an array, so this does not hurt. info(`Deleting consumers with custom ID ${customId}`); async.map(consumerList.data, (consumer, callback) => utils.kongDeleteConsumer(consumer.id, callback), function (err, results) { if (err) return callback(err); callback(null); }); });
kongGetRouteForService(apiId, function (err, route) { if (err) return callback(err); kongDeleteRoute(route.id, function (err) { if (err) return callback(err); kongDeleteService(apiId, callback); }) });
kong.getKongConsumers(portalConsumers, function (err, resultConsumers) { if (err) return callback(err); const kongConsumers = [] as ConsumerInfo[]; for (let i = 0; i < resultConsumers.length; ++i) { if (resultConsumers[i]) kongConsumers.push(resultConsumers[i]); } syncConsumers(portalConsumers, kongConsumers, callback); });
function updateKongConsumer(portalConsumer: ConsumerInfo, kongConsumer: ConsumerInfo, callback: ErrorCallback) { // The only thing which may differ here is the custom_id if (portalConsumer.consumer.custom_id === kongConsumer.consumer.custom_id) { debug('Custom ID for consumer username ' + portalConsumer.consumer.username + ' matches: ' + portalConsumer.consumer.custom_id); return callback(null); // Nothing to do. } info('Updating consumer ' + kongConsumer.consumer.id + ' (username ' + kongConsumer.consumer.username + ') with new custom_id: ' + portalConsumer.consumer.custom_id); utils.kongPatchConsumer(kongConsumer.consumer.id, { custom_id: portalConsumer.consumer.custom_id }, callback); }
utils.kongGetRaw(consumerUrl, function (err, consumerData: KongCollection<KongConsumer>) { if (err) return callback(err); async.mapSeries(consumerData.data, function (consumer, callback) { utils.kongDeleteConsumer(consumer.id, callback); }, function (err) { if (err) return callback(err); if (!consumerData.next) // no next link --> we're done return callback(null); // Continue with next batch; get fresh, as we deleted the other ones. wipeConsumerBatch(consumerUrl, callback); }); });
}, function (err) { if (err) return callback(err); debug("updateKongConsumerPlugins() finished."); callback(null); });
], function (err) { if (err) return callback(err); return callback(null); });