public bool RevokeComponentToken(string tenantName, string productName, string componentName, string token) { // Remove from the memory _tenantRepository.RemoveComponentToken(tenantName, productName, componentName, token); // remove from config file List <TenantConfiguration> tenants = TenantIOReader.ReadTenantsFromConfigFile(); var tenant = tenants.Find(x => x.Name == tenantName); if (tenant == null) { return(false); } var product = tenant.Products.Find(x => x.Name == productName); if (product == null) { return(false); } var component = product.Components.Find(x => x.Name == componentName); if (component == null) { return(false); } var componentToken = component.Settings.Tokens.Find(x => x.Token == token); if (componentToken == null) { return(true); } component.Settings.Tokens.Remove(componentToken); // write into file if (TenantIOWriter.WriteTenantsConfiguration(tenants) == true) { // Send to the Cluster _storageHubService.SendRevokeComponentTokenStorage(new Model.Storages.Requests.Components.RevokeComponentTokenDetails() { Tenant = tenantName, Product = productName, Component = componentName, Token = token, StoragesAlreadySent = new List <string>() }); return(true); } return(false); }
public async Task RevokeComponentTokenToThisNode(RevokeComponentTokenDetails revokeComponentTokenDetails) { if (_tenantRepository.GetComponentToken(revokeComponentTokenDetails.Tenant, revokeComponentTokenDetails.Product, revokeComponentTokenDetails.Component, revokeComponentTokenDetails.Token) != null) { _componentApiService.RevokeComponentToken(revokeComponentTokenDetails.Tenant, revokeComponentTokenDetails.Product, revokeComponentTokenDetails.Component, revokeComponentTokenDetails.Token); } // send to other nodes.... await _storageHubService.SendRevokeComponentTokenStorage(revokeComponentTokenDetails); }