public DeployExceptionHandler(IDeployEvents callback, IConf appSettings, IServiceLogger logger, ISession session) { _callback = callback; _session = session; _appSettings = appSettings; _logger = logger; }
public void HandleDeploy(DeployException ex, IDeployEvents callback, List <IDeployer> deploySteps, Action <IDeployer> rollbackExecutor) { foreach (var deployStep in deploySteps) { rollbackExecutor(deployStep); } }
private void RunDeployment(IConf conf, IDeployEvents callback, DeployContext context, byte[] files) { using (var session = _dsFactory.CreateSessionObj(conf, _user)) { _logger.Info(string.Format("Session for '{0}' is opened", _sessionKey)); var deploySteps = new List <IDeployer>(); var failedValidators = new List <IValidator>(); var exceptionHandler = _dsFactory.CreateDeployExHandlerObj(callback, conf, _logger, session); try { conf.PackageManager.BytesToZip(files, conf.PackagePaths.Survey); _logger.Info(string.Format("Zip files was unpacked to '{0}'", conf.PackagePaths.Survey)); DeployExecutor.Validate(_dsFactory.CreateValidatorsList(conf), failedValidators, callback, conf.Survey.DeployMode); _logger.Info(string.Format("Validation process is complete. Found '{0}' error(s)", failedValidators.Count)); if (failedValidators.Any()) { throw new ValidationException("Validation at " + String.Join(", ", failedValidators.Select(v => v.Name).ToArray()) + " failed."); } DeployExecutor.Deploy(_dsFactory.CreateDeployersList(conf), deploySteps, callback, conf.Survey.DeployMode); _logger.Info(string.Format("Deploy is finished for '{0}'", _sessionKey)); session.Commit(); _logger.Info(string.Format("Session for '{0}' is commited successfully", _sessionKey)); } catch (ValidationException exception) { exceptionHandler.HandleValidation(exception, callback); } catch (DeployException exception) { exceptionHandler.HandleDeploy(exception, callback, deploySteps, GetRollbackAction(context)); } catch (Exception exception) { exceptionHandler.HandleUnknown(exception, callback); } } }
public void PrepareEnvironment() { _logger = new ServiceLoggerStub(); _callback = new CallbackChannelStub(); _surveyName = "Test" + TestUtils.GetPostfix(); _surveyPath = "D:\\sss\\" + _surveyName; _files = new SendingFiles(1024 * 1024 * 3); }
public void HandleDeploy(DeployException ex, IDeployEvents callback, List <IDeployer> deploySteps, Action <IDeployer> rollbackExecutor) { _logger.Error("Deploy exception is catched", ex); HandleException(ex); foreach (var installStep in deploySteps) { try { rollbackExecutor(installStep); _logger.Info("Rollback is complete"); } catch (RollbackException rollbackEx) { HandleException(rollbackEx); } }
public void HandleDeploy(DeployException ex, IDeployEvents callback, List<IDeployer> deploySteps, Action<IDeployer> rollbackExecutor) { _logger.Error("Deploy exception is catched", ex); HandleException(ex); foreach (var installStep in deploySteps) try { rollbackExecutor(installStep); _logger.Info("Rollback is complete"); } catch (RollbackException rollbackEx) { HandleException(rollbackEx); } catch (Exception unknownEx) { HandleException(unknownEx); } }
private void RunDeployment(IConf conf, IDeployEvents callback, DeployContext context, byte[] files) { using (var session = _dsFactory.CreateSessionObj(conf, _user)) { _logger.Info(string.Format("Session for '{0}' is opened", _sessionKey)); var deploySteps = new List<IDeployer>(); var failedValidators = new List<IValidator>(); var exceptionHandler = _dsFactory.CreateDeployExHandlerObj(callback, conf, _logger, session); try { conf.PackageManager.BytesToZip(files, conf.PackagePaths.Survey); _logger.Info(string.Format("Zip files was unpacked to '{0}'", conf.PackagePaths.Survey)); DeployExecutor.Validate(_dsFactory.CreateValidatorsList(conf), failedValidators, callback, conf.Survey.DeployMode); _logger.Info(string.Format("Validation process is complete. Found '{0}' error(s)", failedValidators.Count)); if (failedValidators.Any()) throw new ValidationException("Validation at " + String.Join(", ", failedValidators.Select(v => v.Name).ToArray()) + " failed."); DeployExecutor.Deploy(_dsFactory.CreateDeployersList(conf), deploySteps, callback, conf.Survey.DeployMode); _logger.Info(string.Format("Deploy is finished for '{0}'", _sessionKey)); session.Commit(); _logger.Info(string.Format("Session for '{0}' is commited successfully", _sessionKey)); } catch (ValidationException exception) { exceptionHandler.HandleValidation(exception, callback); } catch (DeployException exception) { exceptionHandler.HandleDeploy(exception, callback, deploySteps, GetRollbackAction(context)); } catch (Exception exception) { exceptionHandler.HandleUnknown(exception, callback); } } }
public void HandleValidation(ValidationException ex, IDeployEvents callback) { _logger.Error("Validation exception is catched", ex); HandleException(ex); }
public IDeployExceptionHandler CreateDeployExHandlerObj(IDeployEvents callback, IConf settings, IServiceLogger logger, ISession session) { return _exHandlerFactory(callback, settings, logger, session); }
public void HandleUnknown(Exception ex, IDeployEvents callback) { // ex handling }
public void HandleValidation(ValidationException ex, IDeployEvents callback) { // ex handling }
public void HandleDeploy(DeployException ex, IDeployEvents callback, List<IDeployer> deploySteps, Action<IDeployer> rollbackExecutor) { foreach (var deployStep in deploySteps) rollbackExecutor(deployStep); }
public void HandleUnknown(Exception ex, IDeployEvents callback) { _logger.Error("Unknown exception is catched", ex); HandleException(ex); }
public IDeployExceptionHandler CreateDeployExHandlerObj(IDeployEvents callback, IConf settings, IServiceLogger logger, ISession session) { return(_exHandlerFactory(callback, settings, logger, session)); }
public static DeployExceptionHandler Create(IDeployEvents callback, IConf appSettings, IServiceLogger logger, ISession session) { return new DeployExceptionHandler(callback, appSettings, logger, session); }
public static void Deploy(IEnumerable <IDeployer> deployers, List <IDeployer> installSteps, IDeployEvents callback, DeployMode mode) { var deployExecutor = new DeployExecutor(callback, mode); deployExecutor.Deploy(deployers, installSteps); }
public DeployExecutor(IDeployEvents callback, DeployMode mode) { _callback = callback; _mode = mode; }
public static void Validate(IEnumerable <IValidator> validators, List <IValidator> failedValidators, IDeployEvents callback, DeployMode mode) { var validationExecutor = new DeployExecutor(callback, mode); validationExecutor.Validate(validators, failedValidators); }