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);
     }
 }
Beispiel #3
0
        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 DeployExceptionHandler(IDeployEvents callback, IConf appSettings, IServiceLogger logger, ISession session)
 {
     _callback = callback;
     _session = session;
     _appSettings = appSettings;
     _logger = logger;
 }
Beispiel #5
0
        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);
         }
 }
Beispiel #8
0
        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);
 }
Beispiel #10
0
 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 HandleUnknown(Exception 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 HandleValidation(ValidationException ex, IDeployEvents callback)
 {
     // ex handling
 }
Beispiel #16
0
        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 HandleUnknown(Exception ex, IDeployEvents callback)
 {
     _logger.Error("Unknown exception is catched", ex);
     HandleException(ex);
 }
 public void HandleValidation(ValidationException ex, IDeployEvents callback)
 {
     _logger.Error("Validation exception is catched", ex);
     HandleException(ex);
 }
Beispiel #19
0
 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);
 }
Beispiel #21
0
        public static void Deploy(IEnumerable <IDeployer> deployers, List <IDeployer> installSteps, IDeployEvents callback, DeployMode mode)
        {
            var deployExecutor = new DeployExecutor(callback, mode);

            deployExecutor.Deploy(deployers, installSteps);
        }
Beispiel #22
0
 public DeployExecutor(IDeployEvents callback, DeployMode mode)
 {
     _callback = callback;
     _mode     = mode;
 }
Beispiel #23
0
        public static void Validate(IEnumerable <IValidator> validators, List <IValidator> failedValidators, IDeployEvents callback, DeployMode mode)
        {
            var validationExecutor = new DeployExecutor(callback, mode);

            validationExecutor.Validate(validators, failedValidators);
        }