public bool Upgrade(MonitoringInstance instance) { ZipInfo.ValidateZip(); var checkLicenseResult = CheckLicenseIsValid(); if (!checkLicenseResult.Valid) { logger.Error($"Upgrade aborted - {checkLicenseResult.Message}"); return(false); } instance.ReportCard = new ReportCard(); var restartService = instance.Service.Status == ServiceControllerStatus.Running; if (!instance.TryStopService()) { logger.Error("Service failed to stop or service stop timed out"); return(false); } try { var backupFile = instance.BackupAppConfig(); try { instance.UpgradeFiles(ZipInfo.FilePath); } finally { instance.RestoreAppConfig(backupFile); } instance.SetupInstance(); if (instance.ReportCard.HasErrors) { foreach (var error in instance.ReportCard.Errors) { logger.Error(error); } return(false); } if (restartService && !instance.TryStartService()) { logger.Error("Service failed to start after update - please check configuration for {0}", instance.Name); return(false); } } catch (Exception ex) { logger.Error("Upgrade Failed: {0}", ex.Message); return(false); } return(true); }
public MonitoringEditViewModel(MonitoringInstance instance) { DisplayName = "EDIT MONITORING INSTANCE"; SelectLogPath = new SelectPathCommand(p => LogPath = p, isFolderPicker: true, defaultPath: LogPath); InstanceName = instance.Name; Description = instance.Description; var userAccount = UserAccount.ParseAccountName(instance.ServiceAccount); UseSystemAccount = userAccount.IsLocalSystem(); UseServiceAccount = userAccount.IsLocalService(); UseProvidedAccount = !(UseServiceAccount || UseSystemAccount); if (UseProvidedAccount) { ServiceAccount = instance.ServiceAccount; } HostName = instance.HostName; PortNumber = instance.Port.ToString(); LogPath = instance.LogPath; ErrorQueueName = instance.ErrorQueue; SelectedTransport = instance.TransportPackage; ConnectionString = instance.ConnectionString; MonitoringInstance = instance; }
internal ReportCard Update(MonitoringInstance instance, bool startService) { try { instance.ReportCard = new ReportCard(); instance.ValidateChanges(); if (instance.ReportCard.HasErrors) { instance.ReportCard.Status = Status.FailedValidation; return(instance.ReportCard); } if (!instance.TryStopService()) { instance.ReportCard.Errors.Add("Service failed to stop"); instance.ReportCard.Status = Status.Failed; return(instance.ReportCard); } instance.ApplyConfigChange(); if (!instance.ReportCard.HasErrors) { if (startService && !instance.TryStartService()) { instance.ReportCard.Warnings.Add($"Service did not start after changes - please check configuration for {instance.Name}"); } } instance.ReportCard.SetStatus(); return(instance.ReportCard); } finally { instance.Reload(); } }
public void UpdateInstanceFromViewModel(MonitoringInstance instance) { instance.HostName = HostName; instance.Port = Convert.ToInt32(PortNumber); instance.LogPath = LogPath; instance.ErrorQueue = ErrorQueueName; instance.ConnectionString = ConnectionString; }
protected override void ProcessFtp(ISourceFactory downloaders) { var instance = new MonitoringInstance(TaskPoolScheduler.Default, Config, downloaders, new DeleteArchiving()); if (instance.Start()) { log.Info("Press enter to stop monitoring..."); System.Console.ReadLine(); instance.Stop(); } }
public void SetUp() { scheduler = new TestScheduler(); monitoringConfig = new MonitoringConfig(); monitoringConfig.Scan = 1; monitoringConfig.Known = new PredefinedCameraConfig(); monitoringConfig.Output = new OutputConfig(); archiving = new Mock <IDeleteArchiving>(); mockDestinationFactory = new Mock <ISourceFactory>(); ftpDownloader = new Mock <IDownloader>(); mockDestinationFactory.Setup(item => item.GetSources(It.IsAny <IHostManager>())) .Returns(new[] { ftpDownloader.Object }); instance = CreateMonitoringInstance(); }
internal bool Update(MonitoringInstance instance, bool startService) { instance.ReportCard = new ReportCard(); instance.ValidateChanges(); if (instance.ReportCard.HasErrors) { foreach (var error in instance.ReportCard.Errors) { logger.Error(error); } return(false); } try { if (!instance.TryStopService()) { logger.Error("Service failed to stop"); return(false); } instance.ApplyConfigChange(); if (instance.ReportCard.HasErrors) { foreach (var error in instance.ReportCard.Errors) { logger.Error(error); } return(false); } if (startService && !instance.TryStartService()) { logger.Error("Service failed to start after changes - please check configuration for {0}", instance.Name); return(false); } } catch (Exception ex) { logger.Error("Update failed: {0}", ex.Message); return(false); } return(true); }
public static PsMonitoringService FromInstance(MonitoringInstance instance) { var result = new PsMonitoringService { Name = instance.Name, Url = instance.Url, HostName = instance.HostName, Port = instance.Port, InstallPath = instance.InstallPath, LogPath = instance.LogPath, TransportPackageName = instance.TransportPackage.Name, ConnectionString = instance.ConnectionString, ErrorQueue = instance.ErrorQueue, ServiceAccount = instance.ServiceAccount, Version = instance.Version }; return(result); }