public override bool InitBackup()
        {
            parameters.ServerUrl = parameters.ServerUrl.TrimEnd('/');
            try //precaution - to show error properly just in case
            {
                var serverUri = new Uri(parameters.ServerUrl);
                var serverHostname = serverUri.Scheme + Uri.SchemeDelimiter + serverUri.Host + ":" + serverUri.Port;

                store = new FilesStore { Url = serverHostname, DefaultFileSystem = parameters.Filesystem, ApiKey = parameters.ApiKey, Credentials = parameters.Credentials };
                store.Initialize();
            }
            catch (Exception exc)
            {
                Console.WriteLine(exc);
                try
                {
                    store.Dispose();
                }
                // ReSharper disable once EmptyGeneralCatchClause
                catch (Exception) { }
                return false;
            }


            var backupRequest = new
            {
                BackupLocation = parameters.BackupPath.Replace("\\", "\\\\"),
            };


            var json = RavenJObject.FromObject(backupRequest).ToString();

            var url = "/admin/backup";
            if (parameters.Incremental)
                url += "?incremental=true";
            try
            {
	            using (var req = CreateRequest("/fs/" + parameters.Filesystem + url, "POST"))
	            {
					req.WriteAsync(json).Wait();

					Console.WriteLine("Sending json {0} to {1}", json, parameters.ServerUrl);

					var response = req.ReadResponseJson();
					Console.WriteLine(response);
	            }  
            }
            catch (Exception exc)
            {
                Console.WriteLine(exc);
                return false;
            }

            return true;
        }
Пример #2
0
        protected virtual IAsyncFilesCommands NewAsyncClient(int index = 0, bool fiddler = false, bool enableAuthentication = false, string apiKey = null, 
                                                             ICredentials credentials = null, string requestedStorage = null, [CallerMemberName] string fileSystemName = null)
        {
            fileSystemName = NormalizeFileSystemName(fileSystemName);

            var server = CreateServer(Ports[index], fileSystemName: fileSystemName, enableAuthentication: enableAuthentication, requestedStorage: requestedStorage);
            server.Url = GetServerUrl(fiddler, server.SystemDatabase.ServerUrl);

            var store = new FilesStore()
            {
                Url = server.Url,
                DefaultFileSystem = fileSystemName,
                Credentials = credentials,
                ApiKey = apiKey,
            };

            store.Initialize(true);

            this.filesStores.Add(store);

            var client = store.AsyncFilesCommands;
            asyncCommandClients.Add(client);

            return client;       
        }
Пример #3
0
        protected virtual FilesStore NewStore( int index = 0, bool fiddler = false, bool enableAuthentication = false, string apiKey = null, 
                                                ICredentials credentials = null, string requestedStorage = null, [CallerMemberName] string fileSystemName = null, 
                                                bool runInMemory = true, Action<RavenConfiguration> customConfig = null)
        {
            fileSystemName = NormalizeFileSystemName(fileSystemName);

            var server = CreateServer(Ports[index], 
                fileSystemName: fileSystemName,
                enableAuthentication: enableAuthentication, 
                customConfig: customConfig,
                requestedStorage: requestedStorage, 
                runInMemory:runInMemory);

            server.Url = GetServerUrl(fiddler, server.SystemDatabase.ServerUrl);

            var store = new FilesStore
            {
                Url = server.Url,
                DefaultFileSystem = fileSystemName,
                Credentials = credentials,
                ApiKey = apiKey,                 
            };

            store.Initialize(true);

            this.filesStores.Add(store);

            return store;                        
        }
Пример #4
0
        internal static async Task<FilesStore> CreateStore(FilesConnectionStringOptions options)
        {
            var credentials = options.Credentials as NetworkCredential;
            if (credentials == null)
            {
                credentials = CredentialCache.DefaultNetworkCredentials;
            }
            else if ((String.IsNullOrWhiteSpace(credentials.UserName) || String.IsNullOrWhiteSpace(credentials.Password)))
            {
                credentials = CredentialCache.DefaultNetworkCredentials;
            }

            var store = new FilesStore
            {
                Credentials = credentials,
                ApiKey = options.ApiKey,
                Url = options.Url,
                DefaultFileSystem = options.DefaultFileSystem,
            };

            store.Initialize();

            await ValidateThatServerIsUpAndFilesystemExists(options, store);

            return store;
        }
Пример #5
0
        protected virtual IAsyncFilesCommands NewAsyncClient(int index = 0, 
			bool fiddler = false, 
			bool enableAuthentication = false, 
			string apiKey = null, 
			ICredentials credentials = null, 
            string requestedStorage = null, 
			[CallerMemberName] string fileSystemName = null, 
			Action<RavenConfiguration> customConfig = null,
			string activeBundles = null,
			string dataDirectory = null,
			bool runInMemory = true)
        {
            fileSystemName = NormalizeFileSystemName(fileSystemName);

	        var server = CreateServer(Ports[index], fileSystemName: fileSystemName, enableAuthentication: enableAuthentication, requestedStorage: requestedStorage, activeBundles: activeBundles, customConfig: customConfig,
				dataDirectory: dataDirectory, runInMemory: runInMemory);
            server.Url = GetServerUrl(fiddler, server.SystemDatabase.ServerUrl);

            var store = new FilesStore()
            {
                Url = server.Url,
                DefaultFileSystem = fileSystemName,
                Credentials = credentials,
                ApiKey = apiKey,
            };

            store.Initialize(true);

            filesStores.Add(store);

            var client = store.AsyncFilesCommands;
            asyncCommandClients.Add(client);

            return client;       
        }
Пример #6
0
        protected virtual IFilesStore NewStore( int index = 0, bool fiddler = false, bool enableAuthentication = false, string apiKey = null, 
                                                ICredentials credentials = null, string requestedStorage = null, [CallerMemberName] string fileSystemName = null)
        {
            fileSystemName = NormalizeFileSystemName(fileSystemName);

            var server = CreateRavenDbServer(Ports[index], fileSystemName: fileSystemName, enableAuthentication: enableAuthentication, requestedStorage: requestedStorage);

            var store = new FilesStore()
            {
                Url = GetServerUrl(fiddler, server.SystemDatabase.ServerUrl),
                DefaultFileSystem = fileSystemName,
                Credentials = credentials,
                ApiKey = apiKey,                 
            };

            store.Initialize(true);

            this.filesStores.Add(store);

            return store;                        
        }