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));
        }
 public BucketsHealthCheck() : base(ClusterManagerFactory.FromAppSettings(AppSettings.FromConfigurationManager()))
 {
 }
Exemple #5
0
 public static IConnectionProvider GetPooledConnectionProvider(Cluster cluster)
 {
     return(new PooledKeyedConnectionProvider(ClusterManagerFactory.CreateClusterManager(cluster), new NormalConnectionBuilder()));
 }