Exemple #1
0
        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);
        }