private void DoCreatePackage(Guid uniqueClientId, string requesterIdentity, DeploymentInfo deploymentInfoDto, ProjectInfo projectInfo, string packageDirPath)
        {
            var deploymentTask =
                new CreateManualDeploymentPackageDeploymentTask(
                    ObjectFactory.Instance.CreateProjectInfoRepository(),
                    ObjectFactory.Instance.CreateEnvironmentInfoRepository(),
                    ObjectFactory.Instance.CreateArtifactsRepository(),
                    ObjectFactory.Instance.CreateDirectoryAdapter(),
                    ObjectFactory.Instance.CreateFileAdapter(),
                    ObjectFactory.Instance.CreateZipFileAdapter(),
                    packageDirPath);

            Core.Domain.DeploymentInfo deploymentInfo =
                DtoMapper.ConvertDeploymentInfo(deploymentInfoDto, projectInfo);

            StartTask(deploymentTask, uniqueClientId, requesterIdentity, deploymentInfo);
        }
Example #2
0
        private void DoCreatePackage(Guid uniqueClientId, string requesterIdentity, DeploymentInfo deploymentInfoDto, ProjectInfo projectInfo, string packageDirPath)
        {
            var deploymentTask =
            new CreateManualDeploymentPackageDeploymentTask(
              ObjectFactory.Instance.CreateProjectInfoRepository(),
              ObjectFactory.Instance.CreateEnvironmentInfoRepository(),
              ObjectFactory.Instance.CreateArtifactsRepository(),
              ObjectFactory.Instance.CreateDirectoryAdapter(),
              ObjectFactory.Instance.CreateFileAdapter(),
              ObjectFactory.Instance.CreateZipFileAdapter(),
              packageDirPath);

              Core.Domain.DeploymentInfo deploymentInfo =
            DtoMapper.ConvertDeploymentInfo(deploymentInfoDto, projectInfo);

              StartTask(deploymentTask, uniqueClientId, requesterIdentity, deploymentInfo);
        }
Example #3
0
        public void DeployAsync(Guid deploymentId, Guid uniqueClientId, string requesterIdentity, DeploymentInfo deploymentInfoDto)
        {
            try
              {
            Guard.NotEmpty(deploymentId, "deploymentId");
            Guard.NotEmpty(uniqueClientId, "uniqueClientId");
            Guard.NotNullNorEmpty(requesterIdentity, "requesterIdentity");
            Guard.NotNull(deploymentInfoDto, "deploymentInfo");

            ProjectInfo projectInfo =
              _projectInfoRepository.FindByName(deploymentInfoDto.ProjectName);

            if (projectInfo == null)
            {
              throw new FaultException<ProjectNotFoundFault>(new ProjectNotFoundFault { ProjectName = deploymentInfoDto.ProjectName });
            }

            Core.Domain.DeploymentInfo deploymentInfo = DtoMapper.ConvertDeploymentInfo(deploymentInfoDto, projectInfo);

            ThreadPool.QueueUserWorkItem(
              state =>
              {
            try
            {
              DoDeploy(uniqueClientId, requesterIdentity, deploymentInfo, projectInfo);
            }
            catch (Exception exc)
            {
              HandleDeploymentException(exc, uniqueClientId);
            }
              });
              }
              catch (Exception exc)
              {
            HandleDeploymentException(exc, uniqueClientId);
              }
        }
Example #4
0
        public void CreatePackageAsync(Guid deploymentId, Guid uniqueClientId, string requesterIdentity, DeploymentInfo deploymentInfo, string packageDirPath)
        {
            try
              {
            Guard.NotEmpty(deploymentId, "deploymentId");
            Guard.NotEmpty(uniqueClientId, "uniqueClientId");
            Guard.NotNullNorEmpty(requesterIdentity, "requesterIdentity");
            Guard.NotNull(deploymentInfo, "deploymentInfo");

            ProjectInfo projectInfo =
              _projectInfoRepository.FindByName(deploymentInfo.ProjectName);

            if (projectInfo == null)
            {
              throw new FaultException<ProjectNotFoundFault>(new ProjectNotFoundFault { ProjectName = deploymentInfo.ProjectName });
            }

            ThreadPool.QueueUserWorkItem(
              state =>
              {
            try
            {
              DoCreatePackage(uniqueClientId, requesterIdentity, deploymentInfo, projectInfo, packageDirPath);
            }
            catch (Exception exc)
            {
              HandleDeploymentException(exc, uniqueClientId);
            }
              });
              }
              catch (Exception exc)
              {
            HandleDeploymentException(exc, uniqueClientId);
              }
        }
        public void CreatePackageAsync(Guid deploymentId, Guid uniqueClientId, string requesterIdentity, DeploymentInfo deploymentInfo, string packageDirPath)
        {
            try
            {
                Guard.NotEmpty(deploymentId, "deploymentId");
                Guard.NotEmpty(uniqueClientId, "uniqueClientId");
                Guard.NotNullNorEmpty(requesterIdentity, "requesterIdentity");
                Guard.NotNull(deploymentInfo, "deploymentInfo");

                ProjectInfo projectInfo =
                    _projectInfoRepository.FindByName(deploymentInfo.ProjectName);

                if (projectInfo == null)
                {
                    throw new FaultException <ProjectNotFoundFault>(new ProjectNotFoundFault {
                        ProjectName = deploymentInfo.ProjectName
                    });
                }

                ThreadPool.QueueUserWorkItem(
                    state =>
                {
                    try
                    {
                        DoCreatePackage(uniqueClientId, requesterIdentity, deploymentInfo, projectInfo, packageDirPath);
                    }
                    catch (Exception exc)
                    {
                        HandleDeploymentException(exc, uniqueClientId);
                    }
                });
            }
            catch (Exception exc)
            {
                HandleDeploymentException(exc, uniqueClientId);
            }
        }
        public void DeployAsync(Guid deploymentId, Guid uniqueClientId, string requesterIdentity, DeploymentInfo deploymentInfoDto)
        {
            try
            {
                Guard.NotEmpty(deploymentId, "deploymentId");
                Guard.NotEmpty(uniqueClientId, "uniqueClientId");
                Guard.NotNullNorEmpty(requesterIdentity, "requesterIdentity");
                Guard.NotNull(deploymentInfoDto, "deploymentInfo");

                ProjectInfo projectInfo =
                    _projectInfoRepository.FindByName(deploymentInfoDto.ProjectName);

                if (projectInfo == null)
                {
                    throw new FaultException <ProjectNotFoundFault>(new ProjectNotFoundFault {
                        ProjectName = deploymentInfoDto.ProjectName
                    });
                }

                Core.Domain.DeploymentInfo deploymentInfo = DtoMapper.ConvertDeploymentInfo(deploymentInfoDto, projectInfo);

                ThreadPool.QueueUserWorkItem(
                    state =>
                {
                    try
                    {
                        DoDeploy(uniqueClientId, requesterIdentity, deploymentInfo, projectInfo);
                    }
                    catch (Exception exc)
                    {
                        HandleDeploymentException(exc, uniqueClientId);
                    }
                });
            }
            catch (Exception exc)
            {
                HandleDeploymentException(exc, uniqueClientId);
            }
        }
        private void StartTask(DeploymentTask deploymentTask, Guid uniqueClientId, string requesterIdentity, DeploymentInfo deploymentInfoDto, ProjectInfo projectInfo)
        {
            Core.Domain.DeploymentInfo deploymentInfo =
            DtoMapper.ConvertDeploymentInfo(deploymentInfoDto, projectInfo);

              var deploymentContext =
            new DeploymentContext(requesterIdentity);

              EventHandler<DiagnosticMessageEventArgs> deploymentPipelineDiagnosticMessageAction =
            (eventSender, tmpArgs) =>
            {
              _log.DebugIfEnabled(() => string.Format("{0}: {1}", tmpArgs.MessageType, tmpArgs.Message));

              _diagnosticMessagesLogger.LogMessage(uniqueClientId, tmpArgs.MessageType, tmpArgs.Message);
            };

              try
              {
            _deploymentPipeline.DiagnosticMessagePosted += deploymentPipelineDiagnosticMessageAction;

            _deploymentPipeline.StartDeployment(deploymentInfo, deploymentTask, deploymentContext);
              }
              finally
              {
            _deploymentPipeline.DiagnosticMessagePosted -= deploymentPipelineDiagnosticMessageAction;
              }
        }
        private void DoDeploy(Guid uniqueClientId, string requesterIdentity, DeploymentInfo deploymentInfoDto, ProjectInfo projectInfo)
        {
            DeploymentTask deploymentTask = projectInfo.CreateDeploymentTask(ObjectFactory.Instance);

              StartTask(deploymentTask, uniqueClientId, requesterIdentity, deploymentInfoDto, projectInfo);
        }
        public void Deploy(Guid deploymentId, Guid uniqueClientId, string requesterIdentity, DeploymentInfo deploymentInfo)
        {
            try
              {
            Guard.NotEmpty(deploymentId, "deploymentId");
            Guard.NotEmpty(uniqueClientId, "uniqueClientId");
            Guard.NotNullNorEmpty(requesterIdentity, "requesterIdentity");
            Guard.NotNull(deploymentInfo, "DeploymentInfo");

            ProjectInfo projectInfo =
              _projectInfoRepository.FindByName(deploymentInfo.ProjectName);

            if (projectInfo == null)
            {
              throw new FaultException<ProjectNotFoundFault>(new ProjectNotFoundFault { ProjectName = deploymentInfo.ProjectName });
            }

            DoDeploy(uniqueClientId, requesterIdentity, deploymentInfo, projectInfo);
              }
              catch (Exception exc)
              {
            HandleDeploymentException(exc, uniqueClientId);
              }
        }