public void Execute(IActivityRequest request, IActivityResponse response)
        {
            String RunbookIdentifier = request.Inputs["Runbook Identifier"].AsString();
            String IdentifierType    = request.Inputs["Identifier Type"].AsString();
            String jobStatus         = String.Empty;

            if (request.Inputs.Contains("Job Status"))
            {
                jobStatus = request.Inputs["Job Status"].AsString();
            }
            OrchestratorContext sco = new OrchestratorContext(new Uri(Credentials.OrchestratorServiceURL));

            sco.Credentials = new NetworkCredential(Credentials.UserName, Credentials.Password, Credentials.Domain);
            sco.MergeOption = MergeOption.OverwriteChanges;

            JobInstance[] jobInstance = new JobInstance[0];

            switch (IdentifierType)
            {
            case "Runbook Path":
                if (jobStatus.Equals(String.Empty))
                {
                    jobInstance = SCOrch.getRunbookJobInstances(sco, RunbookIdentifier);
                }
                else
                {
                    jobInstance = SCOrch.getRunbookJobInstances(sco, RunbookIdentifier, jobStatus);
                }
                break;

            case "Runbook GUID":
                Guid runbookGUID = new Guid(RunbookIdentifier);
                if (jobStatus.Equals(String.Empty))
                {
                    jobInstance = SCOrch.getRunbookJobInstances(sco, runbookGUID);
                }
                else
                {
                    jobInstance = SCOrch.getRunbookJobInstances(sco, runbookGUID, jobStatus);
                }
                break;

            default:
                response.LogErrorMessage("Must choose Runbook Path or Runbook GUID as an Identifier Type");
                break;
            }
            response.WithFiltering().PublishRange(parseResults(jobInstance));
            response.Publish("Number of Jobs", numberOfJobs);
        }
Exemplo n.º 2
0
        protected override void ProcessRecord()
        {
            switch (ParameterSetName)
            {
            case "SingleJob":
                WriteObject(SCOrch.getJobDetails(sco, job.job.Id));
                break;

            case "Runbook":
                if (string.IsNullOrEmpty(jobStatus))
                {
                    foreach (JobInstance ji in SCOrch.getRunbookJobInstances(sco, runbook.Id, LoadJobDetails.IsPresent))
                    {
                        WriteObject(ji);
                    }
                }
                else
                {
                    foreach (JobInstance ji in SCOrch.getRunbookJobInstances(sco, runbook.Id, jobStatus, LoadJobDetails.IsPresent))
                    {
                        WriteObject(ji);
                    }
                }
                break;

            case "AllJobs":
                if (string.IsNullOrEmpty(jobStatus))
                {
                    foreach (JobInstance ji in SCOrch.getAllJobs(sco, LoadJobDetails.IsPresent))
                    {
                        WriteObject(ji);
                    }
                }
                else
                {
                    foreach (JobInstance ji in SCOrch.getAllJobs(sco, jobStatus, LoadJobDetails.IsPresent))
                    {
                        WriteObject(ji);
                    }
                }
                break;

            case "RunbookServer":
                if (string.IsNullOrEmpty(jobStatus))
                {
                    foreach (JobInstance ji in SCOrch.getAllJobInstancesOnRunbookServer(sco, runbookServer, LoadJobDetails.IsPresent))
                    {
                        WriteObject(ji);
                    }
                }
                else
                {
                    foreach (JobInstance ji in SCOrch.getAllJobInstancesOnRunbookServer(sco, runbookServer, jobStatus, LoadJobDetails.IsPresent))
                    {
                        WriteObject(ji);
                    }
                }
                break;

            default:
                break;
            }
        }