public HttpResponseMessage Delete(string id) { var docKey = "Raven/Counters/" + id; var configuration = CountersLandlord.CreateTenantConfiguration(id); if (configuration == null) { return(GetEmptyMessage()); } if (!IsCounterStorageNameExists(id)) { return(GetMessageWithString(string.Format("Counter Storage {0} doesn't exist!", id), HttpStatusCode.NotFound)); } Database.Documents.Delete(docKey, null, null); bool isHardDeleteNeeded = CheckQueryStringParameterResult("hard-delete"); if (isHardDeleteNeeded) { IOExtensions.DeleteDirectory(configuration.CountersDataDirectory); } return(GetEmptyMessage()); }
private MessageWithStatusCode DeleteCounterStorage(string id, bool isHardDeleteNeeded) { //get configuration even if the counters is disabled var configuration = CountersLandlord.CreateTenantConfiguration(id, true); if (configuration == null) { return new MessageWithStatusCode { ErrorCode = HttpStatusCode.NotFound, Message = "Counter storage wasn't found" } } ; var docKey = Constants.Counter.Prefix + id; SystemDatabase.Documents.Delete(docKey, null, null); if (isHardDeleteNeeded && configuration.RunInMemory == false) { IOExtensions.DeleteDirectory(configuration.Counter.DataDirectory); } return(new MessageWithStatusCode()); }
public HttpResponseMessage ResourceDrives(string name, string type) { ResourceType resourceType; if (Enum.TryParse(type, out resourceType) == false) { return(GetMessageWithString("Unknown resourceType:" + type, HttpStatusCode.BadRequest)); } string[] drives = null; InMemoryRavenConfiguration config; switch (resourceType) { case ResourceType.Database: config = DatabasesLandlord.CreateTenantConfiguration(name); if (config == null) { return(GetMessageWithString("Unable to find database named: " + name, HttpStatusCode.NotFound)); } drives = FindUniqueDrives(new[] { config.IndexStoragePath, config.Storage.Esent.JournalsStoragePath, config.Storage.Voron.JournalsStoragePath, config.DataDirectory }); break; case ResourceType.FileSystem: config = FileSystemsLandlord.CreateTenantConfiguration(name); if (config == null) { return(GetMessageWithString("Unable to find filesystem named: " + name, HttpStatusCode.NotFound)); } drives = FindUniqueDrives(new[] { config.FileSystem.DataDirectory, config.FileSystem.IndexStoragePath, config.Storage.Esent.JournalsStoragePath, config.Storage.Voron.JournalsStoragePath }); break; case ResourceType.Counter: config = CountersLandlord.CreateTenantConfiguration(name); if (config == null) { return(GetMessageWithString("Unable to find counter named: " + name, HttpStatusCode.NotFound)); } drives = FindUniqueDrives(new[] { config.Counter.DataDirectory, config.Storage.Esent.JournalsStoragePath, config.Storage.Voron.JournalsStoragePath, config.DataDirectory }); break; case ResourceType.TimeSeries: config = TimeSeriesLandlord.CreateTenantConfiguration(name); if (config == null) { return(GetMessageWithString("Unable to find time series named: " + name, HttpStatusCode.NotFound)); } drives = FindUniqueDrives(new[] { config.TimeSeries.DataDirectory, config.Storage.Esent.JournalsStoragePath, config.Storage.Voron.JournalsStoragePath, config.DataDirectory }); break; } return(GetMessageWithObject(drives)); }