public JobListResponse GetJobListResponse() { var jobListobject1 = new JobListJsonObject { Detail = new JobDetailRootJsonObject { Id = "jobid_1984120_001", Status = new Status(), Userargs = new Userargs() }, Id = "jobid_1984120_001" }; var jobListobject2 = new JobListJsonObject { Detail = new JobDetailRootJsonObject { Id = "jobid_1984120_002", Status = new Status(), Userargs = new Userargs() }, Id = "jobid_1984120_002" }; var jobListResponse = new JobListResponse { JobList = new List <JobListJsonObject> { jobListobject1, jobListobject2 }, StatusCode = HttpStatusCode.OK }; return(jobListResponse); }
private List <PSSchedulerJob> GetSchedulerJobs(string cloudService, string jobCollection) { List <PSSchedulerJob> lstJobs = new List <PSSchedulerJob>(); CloudServiceGetResponse csDetails = csmClient.CloudServices.Get(cloudService); foreach (CloudServiceGetResponse.Resource csRes in csDetails.Resources) { if (csRes.ResourceProviderNamespace.Equals(Constants.SchedulerRPNameProvider, StringComparison.OrdinalIgnoreCase) && csRes.Name.Equals(jobCollection, StringComparison.OrdinalIgnoreCase)) { SchedulerClient schedClient = new SchedulerClient(csmClient.Credentials, cloudService, jobCollection); JobListResponse jobs = schedClient.Jobs.List(new JobListParameters { Skip = 0, }); foreach (Job job in jobs) { lstJobs.Add(new PSSchedulerJob { JobName = job.Id, Lastrun = job.Status == null ? null : job.Status.LastExecutionTime, Nextrun = job.Status == null ? null : job.Status.NextExecutionTime, Status = job.State.ToString(), StartTime = job.StartTime, Recurrence = job.Recurrence == null ? "" : job.Recurrence.Interval.ToString() + " per " + job.Recurrence.Frequency.ToString(), Failures = job.Status == null ? default(int?) : job.Status.FailureCount, Faults = job.Status == null ? default(int?) : job.Status.FaultedCount, Executions = job.Status == null ? default(int?) : job.Status.ExecutionCount, EndSchedule = GetEndTime(job), JobCollectionName = jobCollection }); } } } return(lstJobs); }
/// <summary> /// Monitors jobs for specific object id. /// </summary> /// <param name="jobName">Name of the job to monitor.</param> /// <param name="startTime">Start time of job</param> /// <param name="client">SiteRecovery client.</param> /// <param name="requestHeaders">Request headers.</param> public static void MonitorJobs( string jobName, DateTime startTime, SiteRecoveryManagementClient client, CustomRequestHeaders requestHeaders) { bool trackingFinished = false; while (!trackingFinished) { if (!trackingFinished) { Thread.Sleep(new TimeSpan(0, 1, 0)); } JobQueryParameter queryParam = new JobQueryParameter(); JobListResponse jobList = client.Jobs.List(queryParam, requestHeaders); trackingFinished = true; foreach (var job in jobList.Jobs) { if (job.Properties.ScenarioName.Contains(jobName) && job.Properties.State.Equals( "InProgress", StringComparison.InvariantCultureIgnoreCase)) { trackingFinished = false; break; } } } }
public async Task <IList <Job> > GetJobs() { SchedulerClient schedulerClient = new SchedulerClient(cloudServiceName, jobCollectionName, cloudCredentials); JobListResponse jobResponse = await schedulerClient.Jobs.ListAsync(new JobListParameters()); return(jobResponse.Jobs); }
/// <summary> /// Helper function to convert ps backup job list model from service response. /// </summary> public static void AddServiceClientJobsToPSList(JobListResponse serviceClientJobs, List <CmdletModel.JobBase> psJobs, ref int jobsCount) { if (serviceClientJobs.ItemList != null && serviceClientJobs.ItemList.Value != null) { foreach (var job in serviceClientJobs.ItemList.Value) { CmdletModel.JobBase convertedJob = GetPSJob(job); if (convertedJob != null) { jobsCount++; psJobs.Add(convertedJob); } } } }
public string List() { SchedulerClient client = GetClient(); JobListResponse result = client.Jobs.List(new JobListParameters()); string o = "<ul>"; foreach (Job j in result) { o += "<li>" + j.Id + "</li>"; } o += "</ul>"; return(o); }
/// <summary> /// Returns job id of the job. /// </summary> /// <param name="jobName">Name of the job to check for.</param> /// <param name="startTime">Start time of job</param> /// <param name="client">SiteRecovery client.</param> /// <param name="requestHeaders">Request headers.</param> /// <returns>Job object of the job queried.</returns> public static Job GetJobId( string jobName, DateTime startTime, SiteRecoveryManagementClient client, CustomRequestHeaders requestHeaders) { JobListResponse jobList = client.Jobs.List(requestHeaders); foreach (var job in jobList.Jobs) { if (job.Properties.ScenarioName.Contains(jobName)) { return(job); } } return(new Job()); }
public PSJobDetail GetJobDetail(string jobCollection, string job, string cloudService) { CloudServiceGetResponse csDetails = csmClient.CloudServices.Get(cloudService); foreach (CloudServiceGetResponse.Resource csRes in csDetails.Resources) { if (csRes.ResourceProviderNamespace.Equals(Constants.SchedulerRPNameProvider, StringComparison.OrdinalIgnoreCase) && csRes.Name.Equals(jobCollection, StringComparison.OrdinalIgnoreCase)) { SchedulerClient schedClient = this.currentSubscription.CreateClient <SchedulerClient>(false, cloudService, jobCollection, csmClient.Credentials, schedulerManagementClient.BaseUri); JobListResponse jobs = schedClient.Jobs.List(new JobListParameters { Skip = 0, }); foreach (Job j in jobs) { if (j.Id.ToLower().Equals(job.ToLower())) { if (Enum.GetName(typeof(JobActionType), j.Action.Type).Contains("Http")) { return(new PSHttpJobDetail { JobName = j.Id, JobCollectionName = jobCollection, CloudService = cloudService, ActionType = Enum.GetName(typeof(JobActionType), j.Action.Type), Uri = j.Action.Request.Uri, Method = j.Action.Request.Method, Body = j.Action.Request.Body, Headers = j.Action.Request.Headers, Status = j.State.ToString(), StartTime = j.StartTime, EndSchedule = GetEndTime(j), Recurrence = j.Recurrence == null ? string.Empty : j.Recurrence.Interval.ToString() + " per " + j.Recurrence.Frequency.ToString(), Failures = j.Status == null ? default(int?) : j.Status.FailureCount, Faults = j.Status == null ? default(int?) : j.Status.FaultedCount, Executions = j.Status == null ? default(int?) : j.Status.ExecutionCount, Lastrun = j.Status == null ? null : j.Status.LastExecutionTime, Nextrun = j.Status == null ? null : j.Status.NextExecutionTime }); } else { return(new PSStorageQueueJobDetail { JobName = j.Id, JobCollectionName = jobCollection, CloudService = cloudService, ActionType = Enum.GetName(typeof(JobActionType), j.Action.Type), StorageAccountName = j.Action.QueueMessage.StorageAccountName, StorageQueueName = j.Action.QueueMessage.QueueName, SasToken = j.Action.QueueMessage.SasToken, QueueMessage = j.Action.QueueMessage.Message, Status = j.State.ToString(), EndSchedule = GetEndTime(j), StartTime = j.StartTime, Recurrence = j.Recurrence == null ? string.Empty : j.Recurrence.Interval.ToString() + " per " + j.Recurrence.Frequency.ToString(), Failures = j.Status == null ? default(int?) : j.Status.FailureCount, Faults = j.Status == null ? default(int?) : j.Status.FaultedCount, Executions = j.Status == null ? default(int?) : j.Status.ExecutionCount, Lastrun = j.Status == null ? null : j.Status.LastExecutionTime, Nextrun = j.Status == null ? null : j.Status.NextExecutionTime }); } } } } } return(null); }
public PSJobDetail GetJobDetail(string jobCollection, string job, string cloudService) { CloudServiceGetResponse csDetails = csmClient.CloudServices.Get(cloudService); foreach (CloudServiceGetResponse.Resource csRes in csDetails.Resources) { if (csRes.ResourceProviderNamespace.Equals(Constants.SchedulerRPNameProvider, StringComparison.OrdinalIgnoreCase) && csRes.Name.Equals(jobCollection, StringComparison.OrdinalIgnoreCase)) { SchedulerClient schedClient = AzureSession.Instance.ClientFactory.CreateCustomClient <SchedulerClient>(cloudService, jobCollection, csmClient.Credentials, schedulerManagementClient.BaseUri); JobListResponse jobs = schedClient.Jobs.List(new JobListParameters { Skip = 0, }); foreach (Job j in jobs) { if (j.Id.ToLower().Equals(job.ToLower())) { if (Enum.GetName(typeof(JobActionType), j.Action.Type).Contains("Http")) { PSHttpJobDetail jobDetail = new PSHttpJobDetail(); jobDetail.JobName = j.Id; jobDetail.JobCollectionName = jobCollection; jobDetail.CloudService = cloudService; jobDetail.ActionType = Enum.GetName(typeof(JobActionType), j.Action.Type); jobDetail.Uri = j.Action.Request.Uri; jobDetail.Method = j.Action.Request.Method; jobDetail.Body = j.Action.Request.Body; jobDetail.Headers = j.Action.Request.Headers; jobDetail.Status = j.State.ToString(); jobDetail.StartTime = j.StartTime; jobDetail.EndSchedule = GetEndTime(j); jobDetail.Recurrence = j.Recurrence == null ? string.Empty : j.Recurrence.Interval.ToString() + " (" + j.Recurrence.Frequency.ToString() + "s)"; if (j.Status != null) { jobDetail.Failures = j.Status.FailureCount; jobDetail.Faults = j.Status.FaultedCount; jobDetail.Executions = j.Status.ExecutionCount; jobDetail.Lastrun = j.Status.LastExecutionTime; jobDetail.Nextrun = j.Status.NextExecutionTime; } if (j.Action.Request.Authentication != null) { switch (j.Action.Request.Authentication.Type) { case HttpAuthenticationType.ClientCertificate: PSClientCertAuthenticationJobDetail ClientCertJobDetail = new PSClientCertAuthenticationJobDetail(jobDetail); ClientCertJobDetail.ClientCertExpiryDate = ((j.Action.Request.Authentication) as ClientCertAuthentication).CertificateExpiration.ToString(); ClientCertJobDetail.ClientCertSubjectName = ((j.Action.Request.Authentication) as ClientCertAuthentication).CertificateSubjectName; ClientCertJobDetail.ClientCertThumbprint = ((j.Action.Request.Authentication) as ClientCertAuthentication).CertificateThumbprint; return(ClientCertJobDetail); case HttpAuthenticationType.ActiveDirectoryOAuth: PSAADOAuthenticationJobDetail AADOAuthJobDetail = new PSAADOAuthenticationJobDetail(jobDetail); AADOAuthJobDetail.Audience = ((j.Action.Request.Authentication) as AADOAuthAuthentication).Audience; AADOAuthJobDetail.ClientId = ((j.Action.Request.Authentication) as AADOAuthAuthentication).ClientId; AADOAuthJobDetail.Tenant = ((j.Action.Request.Authentication) as AADOAuthAuthentication).Tenant; return(AADOAuthJobDetail); case HttpAuthenticationType.Basic: PSBasicAuthenticationJobDetail BasicAuthJobDetail = new PSBasicAuthenticationJobDetail(jobDetail); BasicAuthJobDetail.Username = ((j.Action.Request.Authentication) as BasicAuthentication).Username; return(BasicAuthJobDetail); } } return(jobDetail); } else { return(new PSStorageQueueJobDetail { JobName = j.Id, JobCollectionName = jobCollection, CloudService = cloudService, ActionType = Enum.GetName(typeof(JobActionType), j.Action.Type), StorageAccountName = j.Action.QueueMessage.StorageAccountName, StorageQueueName = j.Action.QueueMessage.QueueName, SasToken = j.Action.QueueMessage.SasToken, QueueMessage = j.Action.QueueMessage.Message, Status = j.State.ToString(), EndSchedule = GetEndTime(j), StartTime = j.StartTime, Recurrence = j.Recurrence == null ? string.Empty : j.Recurrence.Interval.ToString() + " (" + j.Recurrence.Frequency.ToString() + "s)", Failures = j.Status == null ? default(int?) : j.Status.FailureCount, Faults = j.Status == null ? default(int?) : j.Status.FaultedCount, Executions = j.Status == null ? default(int?) : j.Status.ExecutionCount, Lastrun = j.Status == null ? null : j.Status.LastExecutionTime, Nextrun = j.Status == null ? null : j.Status.NextExecutionTime }); } } } } } return(null); }
public void Test_JobOperations_E2E() { BasicDelegatingHandler handler = new BasicDelegatingHandler(); using (var undoContext = UndoContext.Current) { undoContext.Start(); string resourceGroupName = TestUtilities.GenerateName("StreamAnalytics"); string resourceName = TestUtilities.GenerateName("MyStreamingJobSubmittedBySDK"); string serviceLocation = TestHelper.GetDefaultLocation(); var resourceClient = TestHelper.GetResourceClient(handler); var client = TestHelper.GetStreamAnalyticsManagementClient(handler); try { ResourceGroup resourceGroup = new ResourceGroup() { Location = serviceLocation }; resourceClient.ResourceGroups.CreateOrUpdate(resourceGroupName, resourceGroup); Job job = new Job(); job.Name = resourceName; job.Location = serviceLocation; // Construct the general properties for JobProperties JobProperties jobProperties = new JobProperties(); jobProperties.Sku = new Sku() { Name = "standard" }; jobProperties.EventsOutOfOrderPolicy = EventsOutOfOrderPolicy.Drop; jobProperties.EventsOutOfOrderMaxDelayInSeconds = 0; // Construct the Input StorageAccount storageAccount = new StorageAccount { AccountName = TestHelper.AccountName, AccountKey = TestHelper.AccountKey }; InputProperties inputProperties = new StreamInputProperties() { Serialization = new CsvSerialization() { Properties = new CsvSerializationProperties() { FieldDelimiter = ",", Encoding = "UTF8" } }, DataSource = new BlobStreamInputDataSource() { Properties = new BlobStreamInputDataSourceProperties() { StorageAccounts = new[] { storageAccount }, Container = "state", PathPattern = "" } } }; Input input1 = new Input("inputtest") { Properties = inputProperties }; jobProperties.Inputs = new[] { input1 }; // Construct the Output OutputProperties outputProperties = new OutputProperties(); SqlAzureOutputDataSource sqlAzureOutputDataSource = new SqlAzureOutputDataSource() { Properties = new SqlAzureOutputDataSourceProperties() { Server = TestHelper.Server, Database = TestHelper.Database, User = TestHelper.User, Password = TestHelper.Password, Table = "StateInfo" } }; outputProperties.DataSource = sqlAzureOutputDataSource; Output output1 = new Output("outputtest") { Properties = outputProperties }; jobProperties.Outputs = new Output[] { output1 }; // Construct the transformation Transformation transformation = new Transformation() { Name = "transformationtest", Properties = new TransformationProperties() { Query = "Select Id, Name from inputtest", StreamingUnits = 1 } }; jobProperties.Transformation = transformation; job.Properties = jobProperties; // Construct the JobCreateProperties JobCreateOrUpdateParameters jobCreateOrUpdateParameters = new JobCreateOrUpdateParameters(); jobCreateOrUpdateParameters.Job = job; // Create a streaming job JobCreateOrUpdateResponse jobCreateOrUpdateResponse = client.StreamingJobs.CreateOrUpdate(resourceGroupName, jobCreateOrUpdateParameters); Assert.Equal(HttpStatusCode.OK, jobCreateOrUpdateResponse.StatusCode); Assert.NotNull(jobCreateOrUpdateResponse.Job.Properties.Etag); // Get a streaming job to check JobGetParameters jobGetParameters = new JobGetParameters("inputs,transformation,outputs"); JobGetResponse jobGetResponse = client.StreamingJobs.Get(resourceGroupName, resourceName, jobGetParameters); Assert.Equal(HttpStatusCode.OK, jobGetResponse.StatusCode); Assert.Equal(serviceLocation, jobGetResponse.Job.Location); Assert.Equal(resourceName, jobGetResponse.Job.Name); Assert.True(jobGetResponse.Job.Properties.Inputs[0].Properties is StreamInputProperties); StreamInputProperties streamInputProperties = jobGetResponse.Job.Properties.Inputs[0].Properties as StreamInputProperties; Assert.Equal("Stream", jobGetResponse.Job.Properties.Inputs[0].Properties.Type); Assert.Equal("Microsoft.Storage/Blob", streamInputProperties.DataSource.Type); Assert.Equal("Csv", streamInputProperties.Serialization.Type); Assert.Equal(EventsOutOfOrderPolicy.Drop, jobGetResponse.Job.Properties.EventsOutOfOrderPolicy); Assert.NotNull(jobGetResponse.Job.Properties.Etag); Assert.Equal(jobCreateOrUpdateResponse.Job.Properties.Etag, jobGetResponse.Job.Properties.Etag); // Patch the streaming job JobPatchParameters jobPatchParameters = new JobPatchParameters() { JobPatchRequest = new JobPatchRequest() { Properties = new JobProperties() { EventsOutOfOrderPolicy = EventsOutOfOrderPolicy.Adjust } } }; var jobPatchResponse = client.StreamingJobs.Patch(resourceGroupName, resourceName, jobPatchParameters); jobGetResponse = client.StreamingJobs.Get(resourceGroupName, resourceName, jobGetParameters); Assert.Equal(HttpStatusCode.OK, jobPatchResponse.StatusCode); Assert.Equal(HttpStatusCode.OK, jobGetResponse.StatusCode); Assert.Equal(EventsOutOfOrderPolicy.Adjust, jobPatchResponse.Job.Properties.EventsOutOfOrderPolicy); Assert.Equal(EventsOutOfOrderPolicy.Adjust, jobGetResponse.Job.Properties.EventsOutOfOrderPolicy); JobListParameters parameters = new JobListParameters(string.Empty); JobListResponse response = client.StreamingJobs.ListJobsInResourceGroup(resourceGroupName, parameters); Assert.Equal(HttpStatusCode.OK, response.StatusCode); // Start a streaming job JobStartParameters jobStartParameters = new JobStartParameters() { OutputStartMode = OutputStartMode.LastOutputEventTime }; CloudException cloudException = Assert.Throws <CloudException>(() => client.StreamingJobs.Start(resourceGroupName, resourceName, jobStartParameters)); Assert.Equal("LastOutputEventTime must be available when OutputStartMode is set to LastOutputEventTime. Please make sure at least one output event has been processed. ", cloudException.Error.Message); jobStartParameters.OutputStartMode = OutputStartMode.CustomTime; jobStartParameters.OutputStartTime = DateTime.Now; AzureOperationResponse jobStartOperationResponse = client.StreamingJobs.Start(resourceGroupName, resourceName, jobStartParameters); Assert.Equal(HttpStatusCode.OK, jobStartOperationResponse.StatusCode); // Get a streaming job to check jobGetResponse = client.StreamingJobs.Get(resourceGroupName, resourceName, jobGetParameters); Assert.Equal(HttpStatusCode.OK, jobGetResponse.StatusCode); Assert.True(IsRunning(jobGetResponse.Job.Properties.JobState)); // Check diagnostics InputListResponse inputListResponse = client.Inputs.ListInputInJob(resourceGroupName, resourceName, new InputListParameters("*")); Assert.Equal(HttpStatusCode.OK, inputListResponse.StatusCode); Assert.NotEqual(0, inputListResponse.Value.Count); Assert.NotNull(inputListResponse.Value[0].Properties.Diagnostics); Assert.NotEqual(0, inputListResponse.Value[0].Properties.Diagnostics.Conditions.Count); Assert.NotNull(inputListResponse.Value[0].Properties.Diagnostics.Conditions[0].Code); Assert.NotNull(inputListResponse.Value[0].Properties.Diagnostics.Conditions[0].Message); // Stop a streaming job AzureOperationResponse jobStopOperationResponse = client.StreamingJobs.Stop(resourceGroupName, resourceName); Assert.Equal(HttpStatusCode.OK, jobStopOperationResponse.StatusCode); // Get a streaming job to check jobGetResponse = client.StreamingJobs.Get(resourceGroupName, resourceName, jobGetParameters); Assert.Equal(HttpStatusCode.OK, jobGetResponse.StatusCode); Assert.Equal(JobRunningState.Stopped, jobGetResponse.Job.Properties.JobState); // Delete a streaming job AzureOperationResponse jobDeleteOperationResponse = client.StreamingJobs.Delete(resourceGroupName, resourceName); Assert.Equal(HttpStatusCode.OK, jobDeleteOperationResponse.StatusCode); } finally { client.StreamingJobs.Delete(resourceGroupName, resourceName); resourceClient.ResourceGroups.Delete(resourceGroupName); } } }
public JobListResponse GetJobListResponse() { var jobListobject1 = new JobListJsonObject { Detail = new JobDetailRootJsonObject { Id = "jobid_1984120_001", Status = new Status(), Userargs = new Userargs() }, Id = "jobid_1984120_001" }; var jobListobject2 = new JobListJsonObject { Detail = new JobDetailRootJsonObject { Id = "jobid_1984120_002", Status = new Status(), Userargs = new Userargs() }, Id = "jobid_1984120_002" }; var jobListResponse = new JobListResponse { JobList = new List<JobListJsonObject> { jobListobject1, jobListobject2 }, StatusCode = HttpStatusCode.OK }; return jobListResponse; }
private void DeleteResources(ClearResourcesInputs inputs) { if (inputs.NamespaceExists) { _ConsoleBuffer.Add("Connecting to Service Bus..."); ServiceBusManagementClient sbMgmt = new ServiceBusManagementClient(inputs.Credentials); bool deleteNamespace = ConsoleHelper.AskAndPerformAction( "Do you want to delete whole namespace " + inputs.SBNamespace + " including all entities under it?", "Are you sure you want to delete namespace " + inputs.SBNamespace + "?", "Are you sure you do not want to delete namespace " + inputs.SBNamespace + "?", () => { _ConsoleBuffer.Add("Sending request to delete " + inputs.SBNamespace + " namespace..."); AzureOperationResponse nsResponse = sbMgmt.Namespaces.Delete(inputs.SBNamespace); if (nsResponse.StatusCode == HttpStatusCode.OK) { _ConsoleBuffer.Add(inputs.SBNamespace + " namespace was deleted."); } }, _ConsoleBuffer); //if we did not delete whole Namespace, maybe we want to delete some of its Event Hubs? if (!deleteNamespace) { _ConsoleBuffer.Add("Reading list of Event Hubs from " + inputs.SBNamespace + " namespace..."); var nsDescription = sbMgmt.Namespaces.GetNamespaceDescription(inputs.SBNamespace); var nsConnectionString = nsDescription.NamespaceDescriptions.First( (d) => String.Equals(d.AuthorizationType, "SharedAccessAuthorization") ).ConnectionString; var nsManager = NamespaceManager.CreateFromConnectionString(nsConnectionString); var eventHubs = nsManager.GetEventHubs( ); foreach (var eventHubDescription in eventHubs) { EventHubDescription description = eventHubDescription; ConsoleHelper.AskAndPerformAction( "Do you want to delete Event Hub " + eventHubDescription.Path + " including all messages under it?", "Are you sure you want to delete Event Hub " + eventHubDescription.Path + "?", "Are you sure you do not want to delete Event Hub " + eventHubDescription.Path + "?", () => { _ConsoleBuffer.Add("Sending request to delete " + description.Path + " Event Hub..."); nsManager.DeleteEventHub(description.Path); _ConsoleBuffer.Add("Request to delete " + description.Path + " Event Hub was accepted."); }, _ConsoleBuffer); } } } //Deleting Storage _ConsoleBuffer.Add("Reading list of Storage Accounts..."); StorageManagementClient stgMgmt = new StorageManagementClient(inputs.Credentials); HashSet <string> storageAccounts = new HashSet <string>( ); foreach (var storageAccount in stgMgmt.StorageAccounts.List( )) { storageAccounts.Add(storageAccount.Name); } int deletedCount = 0; if (storageAccounts.Contains(inputs.StorageAccountName)) { ConsoleHelper.AskAndPerformAction( "Do you want to delete " + inputs.StorageAccountName + " storage account?", "Are you sure you want to delete " + inputs.StorageAccountName + " storage account?", "Are you sure you do not want to delete " + inputs.StorageAccountName + " storage account?", () => { _ConsoleBuffer.Add("Sending request to delete " + inputs.StorageAccountName + " Storage account..."); AzureOperationResponse resultStg = stgMgmt.StorageAccounts.Delete(inputs.StorageAccountName); deletedCount += 1; if (resultStg.StatusCode == System.Net.HttpStatusCode.OK) { _ConsoleBuffer.Add("Storage account " + inputs.StorageAccountName + " was deleted."); } }, _ConsoleBuffer); } if (deletedCount == 0) { _ConsoleBuffer.Add("No related Storage account was detected."); } //Deleting Stream Analytics jobs _ConsoleBuffer.Add("Reading list of Stream Analytics jobs..."); StreamAnalyticsManagementClient saMgmt = new StreamAnalyticsManagementClient(inputs.Credentials); JobListResponse jobListResponse = saMgmt.StreamingJobs.ListJobsInSubscription(new JobListParameters { PropertiesToExpand = string.Empty }); deletedCount = 0; foreach (var job in jobListResponse.Value) { if (job.Name.StartsWith(inputs.NamePrefix)) { Job jobToAsk = job; ConsoleHelper.AskAndPerformAction( "Do you want to delete Stream Analytics job " + job.Name + "?", "Are you sure you want to delete Stream Analytics job " + job.Name + "?", "Are you sure you do not want to delete namespace " + job.Name + "?", () => { //we need to figure out wat resourceGroup this job belongs to //--// const string resourceGroupPath = "/resourceGroups/"; const string providersPath = "/providers/"; int resourceGroupPathIndex = jobToAsk.Id.IndexOf(resourceGroupPath, System.StringComparison.Ordinal); int providersPathIndex = jobToAsk.Id.IndexOf(providersPath, System.StringComparison.Ordinal); int resourceGroupIdStartIndex = resourceGroupPathIndex + resourceGroupPath.Length; string resourceGroup = jobToAsk.Id.Substring(resourceGroupIdStartIndex, providersPathIndex - resourceGroupIdStartIndex); //--// deletedCount += 1; _ConsoleBuffer.Add("Sending request to delete " + jobToAsk.Name + " Stream Analytics job..."); LongRunningOperationResponse response = saMgmt.StreamingJobs.Delete(resourceGroup, jobToAsk.Name); if (response.Status == OperationStatus.Succeeded) { _ConsoleBuffer.Add("Stream Analytics job " + jobToAsk.Name + " was deleted."); } }, _ConsoleBuffer); } } if (deletedCount == 0) { _ConsoleBuffer.Add("No Stream Analytics job was deleted."); } }