Octopus doesn't just store information; it actively *does* things. Examples include deployments, checking that machines are online, automated database backups, and more. These "tasks" are queued and executed asynchronously, and their progress and logs can be monitored using the HTTP API. Some tasks are created automatically; for example, Octopus will automatically create a task to check the status of all machines every 5 minutes. Some tasks are created implicitly, such as when a deployment is created to execute the actual deployment. And some tasks can be created manually, such as backup tasks and sending test emails.
Inheritance: Resource
コード例 #1
0
 static IEnumerable<string> FormatTaskPropertiesAsStrings(TaskResource task)
 {
     return new List<string>
     {
         "Date: " + task.QueueTime,
         "Duration: " + task.Duration,
         "State: " + task.State
     };
 }
コード例 #2
0
        public void Render(IOctopusRepository repository, ILog log, TaskResource resource)
        {
            var details = repository.Tasks.GetDetails(resource);

            if (details.ActivityLog != null)
            {
                foreach (var item in details.ActivityLog.Children)
                {
                    if (log.ServiceMessagesEnabled())
                    {
                        RenderToTeamCity(item, log);
                    }
                    else
                    {
                        RenderToConsole(item, log, "");                        
                    }
                }
            }
        }
コード例 #3
0
        public void SetUp()
        {
            deployReleaseCommand = new DeployReleaseCommand(RepositoryFactory, Log, FileSystem);

            var project = new ProjectResource();
            var release = new ReleaseResource { Version = "1.0.0" };
            var releases = new ResourceCollection<ReleaseResource>(new[] { release }, new LinkCollection());
            var deploymentPromotionTarget = new DeploymentPromotionTarget { Name = "TestEnvironment" };
            var promotionTargets = new List<DeploymentPromotionTarget> { deploymentPromotionTarget };
            var deploymentTemplate = new DeploymentTemplateResource { PromoteTo = promotionTargets };
            var deploymentPreviewResource = new DeploymentPreviewResource { StepsToExecute = new List<DeploymentTemplateStep>() };
            var deployment = new DeploymentResource { TaskId = "1" };
            taskResource = new TaskResource();

            Repository.Projects.FindByName(ProjectName).Returns(project);
            Repository.Projects.GetReleases(project).Returns(releases);
            Repository.Releases.GetPreview(deploymentPromotionTarget).Returns(deploymentPreviewResource);
            Repository.Releases.GetTemplate(release).Returns(deploymentTemplate);
            Repository.Deployments.Create(Arg.Any<DeploymentResource>()).Returns(deployment);
            Repository.Tasks.Get(deployment.TaskId).Returns(taskResource);
        }
コード例 #4
0
        public async Task Render(IOctopusAsyncRepository repository, ILogger log, TaskResource resource)
        {
            var details = await repository.Tasks.GetDetails(resource).ConfigureAwait(false);

            if (details.ActivityLogs != null)
            {
                foreach (var item in details.ActivityLogs)
                {
                    if (log.ServiceMessagesEnabled())
                    {
                        if (log.IsVSTS())
                            RenderToVSTS(item, log, "");
                        else
                            RenderToTeamCity(item, log);
                    }
                    else
                    {
                        RenderToConsole(item, log, "");                        
                    }
                }
            }
        }
コード例 #5
0
 void PrintTaskOutput(TaskResource[] taskResources)
 {
     var task = taskResources.First();
     printer.Render(Repository, Log, task);
 }
コード例 #6
0
 public string GetTaskRawOutputLog(TaskResource task)
 {
     return Repository.Tasks.GetRawOutputLog(task);
 }