public HttpResponseMessage InitializeNewCluster() { var oldClusterManager = SetClusterManagerToNullAndGetOldValue(); oldClusterManager?.Dispose(); var newClusterManager = ClusterManagerFactory.Create(SystemDatabase, DatabasesLandlord, nullifyLastAppliedIndex: true); newClusterManager.InitializeTopology(isPartOfExistingCluster: true); ((Reference <ClusterManager>)Configuration.Properties[typeof(ClusterManager)]).Value = newClusterManager; return(GetEmptyMessage(HttpStatusCode.NoContent)); }
public HttpResponseMessage RemoveClustering() { if (ClusterManager.Engine.CurrentTopology.AllNodes.Count() > 1) { return(GetMessageWithString("Remove clustering is available on single node clusters only.", HttpStatusCode.BadRequest)); } // delete Raft persistent storage and init new one ClusterManager.CleanupAllClusteringData(SystemDatabase); var newClusterManager = ClusterManagerFactory.Create(SystemDatabase, DatabasesLandlord); ((Reference <ClusterManager>)Configuration.Properties[typeof(ClusterManager)]).Value = newClusterManager; return(GetEmptyMessage(HttpStatusCode.NoContent)); }
public HttpResponseMessage InitializeNewCluster(string id) { var oldClusterManager = SetClusterManagerToNullAndGetOldValue(); if (id != null) { oldClusterManager.CleanupAllClusteringData(SystemDatabase); } oldClusterManager?.Dispose(); var newClusterManager = ClusterManagerFactory.Create(SystemDatabase, DatabasesLandlord); if (string.IsNullOrEmpty(id)) { newClusterManager.InitializeTopology(isPartOfExistingCluster: true); } else { newClusterManager.InitializeEmptyTopologyWithId(Guid.Parse(id)); } ((Reference <ClusterManager>)Configuration.Properties[typeof(ClusterManager)]).Value = newClusterManager; return(GetEmptyMessage(HttpStatusCode.NoContent)); }