private static bool ValidateNCacheService() { ICacheServer cacheServer; try { if (cParam.UpdateServerConfig) { //Validate Service on Server(s) foreach (string node in currentServerNodes) { NCache.ServerName = node; cacheServer = NCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); } } //Validate Service on Client NCacheRPCService nCache = new NCacheRPCService(""); nCache.ServerName = cParam.ClientNode; //clientNode; cacheServer = nCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); return(true); } catch (Exception ex) { Console.Error.WriteLine("Error: {0}", ex.Message); return(false); } }
private static bool UpdateConfigs() { try { bool successfullremove = false; if (config.CacheDeployment.ClientNodes == null) { Console.Error.WriteLine("Error : Client node(s) not found."); return(false); } if (config.CacheDeployment.ClientNodes.NodesList == null) { Console.Error.WriteLine("Error : Client node(s) not found."); return(false); } ClientNode[] existingClientNodes = config.CacheDeployment.ClientNodes.Nodes; foreach (ClientNode cNode in existingClientNodes) { if (cNode.Name == DnsCache.ResolveName(cParam.ClientNode).ToString()) { config.CacheDeployment.ClientNodes.NodesList.Remove(cNode); if (config.CacheDeployment.ClientNodes.NodesList.Count == 0) { config.CacheDeployment.ClientNodes = null; } successfullremove = true; } } if (!successfullremove) { Console.Error.WriteLine("Error : Client node(s) not found."); return(false); } foreach (string node in currentServerNodes) { NCache.ServerName = node; cacheServer = NCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); cacheServer.RegisterCache(cParam.CacheId, config, string.Empty, true, true); } NCache.ServerName = cParam.ClientNode; cacheServer = NCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); cacheServer.RemoveCacheFromClientConfig(cParam.CacheId); return(true); } catch (Exception ex) { Console.Error.WriteLine("Error: {0}", ex.Message); return(false); } }
static public void Run(string[] args) { try { object param = new RemoveClientNodeParam(); CommandLineArgumentParser.CommandLineParser(ref param, args); cParam = (RemoveClientNodeParam)param; if (cParam.IsUsage) { AssemblyUsage.PrintLogo(cParam.IsLogo); AssemblyUsage.PrintUsage(); return; } if (!ValidateParameters()) { return; } if (cParam.Port != -1) { NCache.Port = cParam.Port; } if (cParam.Port == -1) { NCache.Port = NCache.UseTcp ? CacheConfigManager.NCacheTcpPort : CacheConfigManager.HttpPort; } if (cParam.Server != null || cParam.Server != string.Empty) { NCache.ServerName = cParam.Server; } cacheServer = NCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); config = cacheServer.GetNewConfiguration(cParam.CacheId); string getClusterIp = cacheServer.GetClusterIP(); if (config == null) { Console.Error.WriteLine("Error: The cache doesnot exist."); return; } if (config.CacheSettings.CacheType == "clustered-cache") { Console.WriteLine("Removing client node '{0}' from cache '{1}' on server '{2}:{3}'.", cParam.ClientNode, cParam.CacheId, getClusterIp, NCache.Port); foreach (Address node in config.CacheDeployment.Servers.GetAllConfiguredNodes()) { currentServerNodes.Add(node.IpAddress.ToString()); } } else { Console.Error.WriteLine("Error: Client nodes cannot be added to local caches"); return; } if (UpdateConfigs()) { Console.WriteLine("Client node '{0}' successfully removed from cache '{1}' on server {2}:{3}.", cParam.ClientNode, cParam.CacheId, getClusterIp, NCache.Port); } } catch (Exception ex) { Console.Error.WriteLine("Error: {0}", ex.Message); } finally { if (cacheServer != null) { cacheServer.Dispose(); } } }
private static void RegisterClientCache(string clientCacheId, string node) { NCache.ServerName = node; cacheServer = NCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); cacheServer.RegisterCache(clientCacheId, clientCacheConfig, string.Empty, true, false); }
private static void UpdateConfigs() { try { if (ValidateNCacheService()) { if (cParam.UpdateServerConfig) { if (config != null) { if (config.CacheDeployment.ClientNodes == null) { config.CacheDeployment.ClientNodes = new ClientNodes(); } if (config.CacheDeployment.ClientNodes.NodesList == null) { config.CacheDeployment.ClientNodes.NodesList = new List <ClientNode>(); } } ClientNode clientNod = new ClientNode(); clientNod.Name = cParam.ClientNode; if (config != null) { config.CacheDeployment.ClientNodes.NodesList.Add(clientNod); } foreach (string node in currentServerNodes) { NCache.ServerName = node; cacheServer = NCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); cacheServer.ApplyCacheConfiguration(cParam.CacheId, config, false); } string oldClientNode = null; ClientConfiguration clientConfig = null; if (currentClientNodes.Count > 0) { oldClientNode = currentClientNodes[0]; NCache.ServerName = oldClientNode; cacheServer = NCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); clientConfig = cacheServer.GetClientConfiguration(cParam.CacheId); } } NCacheRPCService nCache = new NCacheRPCService(""); nCache.ServerName = cParam.ClientNode; //clientNode; cacheServer = nCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); string xml = string.Empty; cacheServer.UpdateClientServersList(cParam.CacheId, GetSeversPriorityList(), "0"); ClientConfiguration clientConfiguration = cacheServer.GetClientConfiguration(cParam.CacheId); CacheConfiguration cacheConfig = new CacheConfiguration(); cacheConfig = clientConfiguration.CacheConfigurationsMap[cParam.CacheId.ToLower()]; //if flag of get mapping is true if (cParam.AcquireServerMapping && _clientIPMapping != null) { if (cacheConfig.ServerMapping == null) { cacheConfig.ServerMapping = new ServerMapping(); } cacheConfig.ServerMapping = new ServerMapping(Management.Management.Util.ManagementWorkFlow.GetUpdatedMappingList(cacheConfig.ServerMapping.MappingServers, _clientIPMapping.MappingServers)); } clientConfiguration.CacheConfigurationsMap.Remove(cParam.CacheId); clientConfiguration.CacheConfigurationsMap.Add(cParam.CacheId, cacheConfig); if (config != null) { if (config.CacheDeployment.Servers.NodeIdentities != null && config.CacheDeployment.Servers.NodeIdentities.Count != 0) { cacheConfig.ServersPriorityList.Clear(); foreach (NodeIdentity identity in config.CacheDeployment.Servers.NodeIdentities) { Alachisoft.NCache.Management.ClientConfiguration.Dom.CacheServer server = new Alachisoft.NCache.Management.ClientConfiguration.Dom.CacheServer(); server.ServerName = identity.NodeName; server.Priority = identity.NodePriority; cacheConfig.ServersPriorityList[identity.NodePriority - 1] = server; } } } cacheServer.UpdateClientConfiguration(cParam.CacheId, clientConfiguration); Console.WriteLine("{0}' successfully added as client node to cache '{1}' on server {2}:{3}.", cParam.ClientNode, cParam.CacheId, NCache.ServerName, NCache.Port); } } catch (Exception ex) { Console.Error.WriteLine("Error: {0}", ex.Message); } }
private static bool UpdateConfigs() { try { bool successfullremove = false; if (config.CacheDeployment.ClientNodes == null) { Console.Error.WriteLine("Error : Client node(s) not found."); return false; } if (config.CacheDeployment.ClientNodes.NodesList == null) { Console.Error.WriteLine("Error : Client node(s) not found."); return false; } ClientNode[] existingClientNodes=config.CacheDeployment.ClientNodes.Nodes; foreach(ClientNode cNode in existingClientNodes) { if (cNode.Name == DnsCache.ResolveName(cParam.ClientNode).ToString()) { config.CacheDeployment.ClientNodes.NodesList.Remove(cNode); if (config.CacheDeployment.ClientNodes.NodesList.Count == 0) config.CacheDeployment.ClientNodes = null; successfullremove = true; } } if (!successfullremove) { Console.Error.WriteLine("Error : Client node(s) not found."); return false; } foreach (string node in currentServerNodes) { NCache.ServerName = node; cacheServer = NCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); cacheServer.RegisterCache(cParam.CacheId, config, string.Empty, true, true); } NCache.ServerName = cParam.ClientNode; cacheServer = NCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); cacheServer.RemoveCacheFromClientConfig(cParam.CacheId); return true; } catch (Exception ex) { Console.Error.WriteLine("Error: {0}", ex.Message); return false; } }
/// <summary> /// The main entry point for the tool. /// </summary> static public void Run(string[] args) { try { object param = new AddClientNodeParam(); CommandLineArgumentParser.CommandLineParser(ref param, args); cParam = (AddClientNodeParam)param; if (cParam.IsUsage) { AssemblyUsage.PrintLogo(cParam.IsLogo); AssemblyUsage.PrintUsage(); return; } if (!ValidateParameters()) { return; } bool multipleServers = false; if (cParam.Server != null || cParam.Server != string.Empty) { _serverList = cParam.Server.Split(','); if (_serverList.Length > 1 || (_serverList[0].Contains(":"))) { multipleServers = true; } } tryNextServer: if (multipleServers) { string[] serverAddress = _serverList[index].Split(':'); if (serverAddress.Length == 2) { if (!IsValidIP(serverAddress[0])) { Console.Error.WriteLine("Error: Invalid Server IP."); return; } NCache.ServerName = serverAddress[0]; try { NCache.Port = Convert.ToInt32(serverAddress[1]); } catch (Exception) { throw new Exception("Invalid Port :" + serverAddress[1] + " specified for server : " + serverAddress[0] + "."); } } else if (serverAddress.Length == 1) { if (!IsValidIP(serverAddress[0])) { Console.Error.WriteLine("Error: Invalid Server IP."); return; } NCache.ServerName = serverAddress[0]; NCache.Port = cParam.Port; if (cParam.Port == -1) { NCache.Port = NCache.UseTcp ? CacheConfigManager.NCacheTcpPort : CacheConfigManager.HttpPort; } } else { throw new Exception("Invalid server Address specified, kindly specify as [IPAdress] or [IPAdress]:[Port]."); } } else { if (cParam.Port != -1) { NCache.Port = cParam.Port; } if (cParam.Server != null || cParam.Server != string.Empty) { NCache.ServerName = cParam.Server; } if (cParam.Port == -1) { NCache.Port = NCache.UseTcp ? CacheConfigManager.NCacheTcpPort : CacheConfigManager.HttpPort; } } try { _server = NCache.ServerName; cacheServer = NCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); } catch (Exception ex) { if (multipleServers) { if (index < _serverList.Length - 1) { Console.Error.WriteLine("Failed to connect to server : " + NCache.ServerName + ":" + NCache.Port + " \nTrying next server."); index++; goto tryNextServer; } } throw ex; } config = cacheServer.GetNewConfiguration(cParam.CacheId); //for getting server mappings if (cParam.AcquireServerMapping) { Alachisoft.NCache.Management.MappingConfiguration.Dom.MappingConfiguration mapping = cacheServer.GetServerMappingForClient(); if (mapping != null) { _clientIPMapping = mapping.ClientIPMapping; foreach (Mapping mappingServer in mapping.ManagementIPMapping.MappingServers) { if (mappingServer != null) { _managementIPMapping.Add(mappingServer.PrivateIP, mappingServer); } } } } if (config == null) { Console.Error.WriteLine("Error : The cache'{0}' does not exist on server {1}:{2} .", cParam.CacheId, NCache.ServerName, NCache.Port); return; } if (config.CacheSettings.CacheType == "clustered-cache") { Console.WriteLine("Adding client node '{0}' to cache '{1}' on server {2}:{3}.", cParam.ClientNode, cParam.CacheId, NCache.ServerName, NCache.Port); foreach (Address node in config.CacheDeployment.Servers.GetAllConfiguredNodes()) { currentServerNodes.Add(node.IpAddress.ToString()); } } else { Console.Error.WriteLine("Error: Client nodes cannot be added to local caches"); return; } if (config.CacheDeployment.ClientNodes != null) { foreach (ClientNode clientNode in config.CacheDeployment.ClientNodes.NodesList) { if (cParam.ClientNode.Equals(clientNode.Name)) { Console.Error.WriteLine("Error: " + clientNode.Name + " already part of \"" + cParam.CacheId + "\""); return; } currentClientNodes.Add(clientNode.Name); } } UpdateConfigs(); } catch (Exception ex) { Console.Error.WriteLine("Error: {0}", ex.Message); } }
public static void Run(string[] args) { try { object param = new RemoveClientNodeParam(); CommandLineArgumentParser.CommandLineParser(ref param, args); cParam = (RemoveClientNodeParam)param; if (cParam.IsUsage) { AssemblyUsage.PrintLogo(cParam.IsLogo); AssemblyUsage.PrintUsage(); return; } if (!ValidateParameters()) return; if (cParam.Port != -1) NCache.Port = cParam.Port; if (cParam.Port == -1) NCache.Port = NCache.UseTcp ? CacheConfigManager.NCacheTcpPort : CacheConfigManager.HttpPort; if (cParam.Server != null || cParam.Server != string.Empty) { NCache.ServerName = cParam.Server; } cacheServer = NCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); config = cacheServer.GetNewConfiguration(cParam.CacheId); string getClusterIp = cacheServer.GetClusterIP(); if (config == null) { Console.Error.WriteLine("Error: The cache doesnot exist."); return; } if (config.CacheSettings.CacheType == "clustered-cache") { Console.WriteLine("Removing client node '{0}' from cache '{1}' on server '{2}:{3}'.", cParam.ClientNode, cParam.CacheId, getClusterIp, NCache.Port); foreach (Address node in config.CacheDeployment.Servers.GetAllConfiguredNodes()) { currentServerNodes.Add(node.IpAddress.ToString()); } } else { Console.Error.WriteLine("Error: Client nodes cannot be removed from local caches"); return; } if (UpdateConfigs()) { Console.WriteLine("Client node '{0}' successfully removed from cache '{1}' on server {2}:{3}.", cParam.ClientNode, cParam.CacheId, getClusterIp, NCache.Port); } } catch (Exception ex) { Console.Error.WriteLine("Error: {0}", ex.Message); } finally { if(cacheServer!=null) cacheServer.Dispose(); } }
private static bool ValidateNCacheService() { ICacheServer cacheServer; try { if (cParam.UpdateServerConfig) { //Validate Service on Server(s) foreach (string node in currentServerNodes) { NCache.ServerName = node; cacheServer = NCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); } } //Validate Service on Client NCacheRPCService nCache = new NCacheRPCService(""); nCache.ServerName = cParam.ClientNode; //clientNode; cacheServer = nCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); return true; } catch (Exception ex) { Console.Error.WriteLine("Error: {0}", ex.Message); return false; } }
private static void UpdateConfigs() { try { if (ValidateNCacheService()) { if (cParam.UpdateServerConfig) { if (config != null) { if (config.CacheDeployment.ClientNodes == null) config.CacheDeployment.ClientNodes = new ClientNodes(); if (config.CacheDeployment.ClientNodes.NodesList == null) config.CacheDeployment.ClientNodes.NodesList = new List<ClientNode>(); } ClientNode clientNod = new ClientNode(); clientNod.Name = cParam.ClientNode; if(config != null) config.CacheDeployment.ClientNodes.NodesList.Add(clientNod); foreach (string node in currentServerNodes) { NCache.ServerName = node; cacheServer = NCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); cacheServer.ApplyCacheConfiguration(cParam.CacheId, config, false); } string oldClientNode = null; ClientConfiguration clientConfig = null; if (currentClientNodes.Count > 0) { oldClientNode = currentClientNodes[0]; NCache.ServerName = oldClientNode; cacheServer = NCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); clientConfig = cacheServer.GetClientConfiguration(cParam.CacheId); } } NCacheRPCService nCache = new NCacheRPCService(""); nCache.ServerName = cParam.ClientNode; //clientNode; cacheServer = nCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); string xml = string.Empty; cacheServer.UpdateClientServersList(cParam.CacheId, GetSeversPriorityList(),"0"); ClientConfiguration clientConfiguration = cacheServer.GetClientConfiguration(cParam.CacheId); CacheConfiguration cacheConfig = new CacheConfiguration(); cacheConfig = clientConfiguration.CacheConfigurationsMap[cParam.CacheId.ToLower()]; //if flag of get mapping is true if (cParam.AcquireServerMapping && _clientIPMapping != null) { if (cacheConfig.ServerMapping == null) { cacheConfig.ServerMapping = new ServerMapping(); } cacheConfig.ServerMapping = new ServerMapping(Management.Management.Util.ManagementWorkFlow.GetUpdatedMappingList(cacheConfig.ServerMapping.MappingServers, _clientIPMapping.MappingServers)); } clientConfiguration.CacheConfigurationsMap.Remove(cParam.CacheId); clientConfiguration.CacheConfigurationsMap.Add(cParam.CacheId, cacheConfig); if (config != null) { if (config.CacheDeployment.Servers.NodeIdentities != null && config.CacheDeployment.Servers.NodeIdentities.Count != 0) { cacheConfig.ServersPriorityList.Clear(); foreach (NodeIdentity identity in config.CacheDeployment.Servers.NodeIdentities) { Alachisoft.NCache.Management.ClientConfiguration.Dom.CacheServer server = new Alachisoft.NCache.Management.ClientConfiguration.Dom.CacheServer(); server.ServerName = identity.NodeName; server.Priority = identity.NodePriority; cacheConfig.ServersPriorityList[identity.NodePriority - 1] = server; } } } cacheServer.UpdateClientConfiguration(cParam.CacheId, clientConfiguration); Console.WriteLine("{0}' successfully added as client node to cache '{1}' on server {2}:{3}.", cParam.ClientNode, cParam.CacheId, NCache.ServerName, NCache.Port); } } catch (Exception ex) { Console.Error.WriteLine("Error: {0}", ex.Message); } }
/// <summary> /// The main entry point for the tool. /// </summary> public static void Run(string[] args) { try { object param = new AddClientNodeParam(); CommandLineArgumentParser.CommandLineParser(ref param, args); cParam = (AddClientNodeParam)param; if (cParam.IsUsage) { AssemblyUsage.PrintLogo(cParam.IsLogo); AssemblyUsage.PrintUsage(); return; } if (!ValidateParameters()) return; bool multipleServers = false; if (cParam.Server != null || cParam.Server != string.Empty) { _serverList = cParam.Server.Split(','); if (_serverList.Length > 1 || (_serverList[0].Contains(":"))) { multipleServers = true; } } tryNextServer: if (multipleServers) { string[] serverAddress = _serverList[index].Split(':'); if (serverAddress.Length == 2) { if (!IsValidIP(serverAddress[0])) { Console.Error.WriteLine("Error: Invalid Server IP."); return; } NCache.ServerName = serverAddress[0]; try { NCache.Port = Convert.ToInt32(serverAddress[1]); } catch (Exception) { throw new Exception("Invalid Port :" + serverAddress[1] + " specified for server : " + serverAddress[0] + "."); } } else if (serverAddress.Length == 1) { if (!IsValidIP(serverAddress[0])) { Console.Error.WriteLine("Error: Invalid Server IP."); return; } NCache.ServerName = serverAddress[0]; NCache.Port = cParam.Port; if (cParam.Port == -1) NCache.Port = NCache.UseTcp ? CacheConfigManager.NCacheTcpPort : CacheConfigManager.HttpPort; } else { throw new Exception("Invalid server Address specified, kindly specify as [IPAdress] or [IPAdress]:[Port]."); } } else { if (cParam.Port != -1) { NCache.Port = cParam.Port; } if (cParam.Server != null || cParam.Server != string.Empty) { NCache.ServerName = cParam.Server; } if (cParam.Port == -1) NCache.Port = NCache.UseTcp ? CacheConfigManager.NCacheTcpPort : CacheConfigManager.HttpPort; } try { _server = NCache.ServerName; cacheServer = NCache.GetCacheServer(new TimeSpan(0, 0, 0, 30)); } catch (Exception ex) { if (multipleServers) { if (index < _serverList.Length - 1) { Console.Error.WriteLine("Failed to connect to server : " + NCache.ServerName + ":"+NCache.Port+" \nTrying next server."); index++; goto tryNextServer; } } throw ex; } config = cacheServer.GetNewConfiguration(cParam.CacheId); //for getting server mappings if (cParam.AcquireServerMapping) { Alachisoft.NCache.Management.MappingConfiguration.Dom.MappingConfiguration mapping=cacheServer.GetServerMappingForClient(); if (mapping != null) { _clientIPMapping = mapping.ClientIPMapping; foreach (Mapping mappingServer in mapping.ManagementIPMapping.MappingServers) { if (mappingServer != null) { _managementIPMapping.Add(mappingServer.PrivateIP, mappingServer); } } } } if (config == null) { Console.Error.WriteLine("Error : The cache'{0}' does not exist on server {1}:{2} .", cParam.CacheId, NCache.ServerName, NCache.Port); return; } if (config.CacheSettings.CacheType == "clustered-cache") { Console.WriteLine("Adding client node '{0}' to cache '{1}' on server {2}:{3}.", cParam.ClientNode, cParam.CacheId, NCache.ServerName, NCache.Port); foreach (Address node in config.CacheDeployment.Servers.GetAllConfiguredNodes()) { currentServerNodes.Add(node.IpAddress.ToString()); } } else { Console.Error.WriteLine("Error: Client nodes cannot be added to local caches"); return; } if (config.CacheDeployment.ClientNodes != null) { foreach (ClientNode clientNode in config.CacheDeployment.ClientNodes.NodesList) { if (cParam.ClientNode.Equals(clientNode.Name)) { Console.Error.WriteLine("Error: " + clientNode.Name + " already part of \"" + cParam.CacheId + "\""); return; } currentClientNodes.Add(clientNode.Name); } } UpdateConfigs(); } catch (Exception ex) { Console.Error.WriteLine("Error: {0}", ex.Message); } }