public Options() { Mirror = new MirrorOptions(); Play = new PlayOptions(); Test = new TestOptions(); Server = new ServerOptions(); }
public static void EnsureValid(this MirrorOptions options) { if (options == null) { ThrowMissingConfiguration(nameof(BaGetOptions.Mirror)); } if (!options.Enabled) { return; } if (options.UpstreamIndex == null) { ThrowMissingConfiguration( nameof(BaGetOptions.Mirror), nameof(MirrorOptions.UpstreamIndex)); } if (options.PackagesPath == null) { ThrowMissingConfiguration( nameof(BaGetOptions.Mirror), nameof(MirrorOptions.PackagesPath)); } if (options.PackageDownloadTimeoutSeconds <= 0) { options.PackageDownloadTimeoutSeconds = 600; } }
public MirrorService( INuGetClient client, IPackageCacheService localPackages, IPackageDownloader downloader, ILogger <MirrorService> logger, MirrorOptions options) { _startLock = new object(); _downloads = new Dictionary <PackageIdentity, Task>(); _localPackages = localPackages ?? throw new ArgumentNullException(nameof(localPackages)); _downloader = downloader ?? throw new ArgumentNullException(nameof(downloader)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); this._loggerAdapter = new NuGetLoggerAdapter <MirrorService>(_logger); _sourceRepository = client.GetRepository(options.UpstreamIndex); }
/// <summary> /// Synchronizes local and remote folders. /// </summary> public void DoMirror(bool remoteIsMaster) { EnableProgress(true); MirrorOptions opt = new MirrorOptions(); opt.Recursive = _loginInfo.Get <RecursionMode>(LoginInfo.SyncRecursive); opt.SearchCondition = new NameSearchCondition(_loginInfo.Get <string>(LoginInfo.SyncSearchPattern)); _mirrorSavedRestoreState = _client.RestoreFileProperties ? 1 : 0; _client.RestoreFileProperties = _loginInfo.Get <bool>(LoginInfo.SyncDateTime); switch (_loginInfo.Get <int>(LoginInfo.SyncMethod)) { case 0: opt.Comparer = FileComparers.FileLastWriteTimeComparer; break; case 1: opt.Comparer = _loginInfo.Get <bool>(LoginInfo.SyncResumability) ? FileComparers.FileContentComparerWithResumabilityCheck : FileComparers.FileContentComparer; break; case 2: opt.Comparer = FileComparers.FileNameComparer; break; } #if Framework4_5 || !ASYNC try { #if !ASYNC // Asynchronously synchronize folders. client.MirrorAsync(txtRemoteDir.Text, txtLocalDir.Text, dlg.RemoteIsMaster, opt, dlg.RemoteIsMaster); #else client.Mirror(txtRemoteDir.Text, txtLocalDir.Text, dlg.RemoteIsMaster, opt); #endif } catch (Exception ex) { } DoMirrorPost(dlg.RemoteIsMaster); #else // Asynchronously synchronize folders. _client.MirrorAsync(_currentDirectory, _currentLocalDirectory, remoteIsMaster, opt, remoteIsMaster); #endif }
public MirrorServiceIntegrationTest(ITestOutputHelper helper) { var logger = new XunitLoggerProvider(helper); tempDir = new TempDir(); IPackageCacheService localPackages = new FileSystemPackageCacheService(tempDir.UniqueTempFolder); IPackageDownloader downloader = new PackageDownloader(new System.Net.Http.HttpClient(), logger.CreateLogger <PackageDownloader>("MirrorServiceItest")); MirrorOptions options = new MirrorOptions() { Enabled = true, UpstreamIndex = new System.Uri("https://api.nuget.org/v3/index.json"), PackagesPath = tempDir.UniqueTempFolder, PackageDownloadTimeoutSeconds = 10 }; mirrorService = new MirrorService(new NuGetClient(logger.CreateLogger <NuGetClient>("MirrorServiceItest")), localPackages, downloader, logger.CreateLogger <MirrorService>("MirrorServiceItest"), options); }
public MirrorServiceTest(ITestOutputHelper helper) { var logger = new XunitLoggerProvider(helper); localPackages = new Mock <IPackageCacheService>(MockBehavior.Strict); localPackages.Setup(p => p.AddPackageAsync(It.IsAny <Stream>())).Returns(Task.CompletedTask); downloader = new Mock <IPackageDownloader>(MockBehavior.Strict); downloader.Setup(d => d.DownloadOrNullAsync(It.IsAny <Uri>(), It.IsAny <CancellationToken>())).ReturnsAsync(new MemoryStream()); MirrorOptions options = new MirrorOptions() { Enabled = true, PackageDownloadTimeoutSeconds = 10, UpstreamIndex = new Uri("http://example.com") }; client = new Mock <INuGetClient>(MockBehavior.Strict); sourceRepo = new Mock <ISourceRepository>(MockBehavior.Strict); sourceRepo.Setup(s => s.GetPackageUriAsync(It.Is <string>(p => p == "log4net"), It.Is <string>(p => p == "2.0.8"), It.IsAny <CancellationToken>())) .ReturnsAsync(new Uri("http://example.com/package/1")); client.Setup(c => c.GetRepository(options.UpstreamIndex)).Returns(sourceRepo.Object); mirrorService = new MirrorService(client.Object, localPackages.Object, downloader.Object, logger.CreateLogger <MirrorService>("MirrorServiceTest"), options); }
public MirrorController(IOptions <MirrorOptions> accessor) { _options = accessor.Value; }
public Options() { Mirror = new MirrorOptions(); Test = new TestOptions(); }