/// <summary> /// Initializes a new instance of the JobPatchResponse class with /// required arguments. /// </summary> public JobPatchResponse(Job job) : this() { if (job == null) { throw new ArgumentNullException("job"); } this.Job = job; }
public PSJob(Job job) { if (job == null) { throw new ArgumentNullException("job"); } this.job = job; }
/// <summary> /// Initializes a new instance of the JobCreateOrUpdateResponse class /// with required arguments. /// </summary> public JobCreateOrUpdateResponse(Job job) : this() { if (job == null) { throw new ArgumentNullException("job"); } this.Job = job; }
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 JsonSerialization() { Properties = new JsonSerializationProperties() { 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("Json", 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 = new DateTime(2012, 12, 12, 12, 12, 12, DateTimeKind.Utc); 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 void Test_JobOperationsWithJsonContent_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.Location = serviceLocation; string inputName = TestUtilities.GenerateName("input"); string outputName = TestUtilities.GenerateName("output"); string transformationName = TestUtilities.GenerateName("transformation"); string functionName = TestUtilities.GenerateName("function"); // Create a streaming job string content = File.ReadAllText(@"Resources\JobDefinition.json"); JobCreateOrUpdateResponse jobCreateOrUpdateResponse = client.StreamingJobs.CreateOrUpdateWithRawJsonContent(resourceGroupName, resourceName, new JobCreateOrUpdateWithRawJsonContentParameters() { Content = content }); Assert.Equal(HttpStatusCode.OK, jobCreateOrUpdateResponse.StatusCode); Assert.NotNull(jobCreateOrUpdateResponse.Job.Properties.Etag); // Create an input for the streaming job content = File.ReadAllText(@"Resources\InputDefinition.json"); InputCreateOrUpdateResponse inputCreateOrUpdateResponse = client.Inputs.CreateOrUpdateWithRawJsonContent(resourceGroupName, resourceName, inputName, new InputCreateOrUpdateWithRawJsonContentParameters() { Content = content }); Assert.Equal(HttpStatusCode.OK, inputCreateOrUpdateResponse.StatusCode); Assert.NotNull(inputCreateOrUpdateResponse.Input.Properties.Etag); // Create an output for the streaming job content = File.ReadAllText(@"Resources\OutputDefinition.json"); OutputCreateOrUpdateResponse outputCreateOrUpdateResponse = client.Outputs.CreateOrUpdateWithRawJsonContent(resourceGroupName, resourceName, outputName, new OutputCreateOrUpdateWithRawJsonContentParameters() { Content = content }); Assert.Equal(HttpStatusCode.OK, outputCreateOrUpdateResponse.StatusCode); Assert.NotNull(outputCreateOrUpdateResponse.Output.Properties.Etag); // Create a tranformation for the streaming job content = File.ReadAllText(@"Resources\TransformationDefinition.json"); TransformationCreateOrUpdateResponse transformationCreateOrUpdateResponse = client.Transformations.CreateOrUpdateWithRawJsonContent(resourceGroupName, resourceName, transformationName, new TransformationCreateOrUpdateWithRawJsonContentParameters() { Content = content }); Assert.Equal(HttpStatusCode.OK, transformationCreateOrUpdateResponse.StatusCode); Assert.NotNull(transformationCreateOrUpdateResponse.Transformation.Properties.Etag); content = File.ReadAllText(@"Resources\FunctionDefinition.json"); FunctionCreateOrUpdateResponse functionCreateOrUpdateResponse = client.Functions.CreateOrUpdateWithRawJsonContent(resourceGroupName, resourceName, functionName, new FunctionCreateOrUpdateWithRawJsonContentParameters() { Content = content }); Assert.Equal(HttpStatusCode.OK, functionCreateOrUpdateResponse.StatusCode); Assert.NotNull(functionCreateOrUpdateResponse.Function.Properties.Etag); // Get a streaming job to check JobGetParameters jobGetParameters = new JobGetParameters("inputs,transformation,outputs,functions"); 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.Equal(inputName, jobGetResponse.Job.Properties.Inputs.SingleOrDefault().Name); Assert.Equal(outputName, jobGetResponse.Job.Properties.Outputs.SingleOrDefault().Name); Assert.Equal(transformationName, jobGetResponse.Job.Properties.Transformation.Name); Assert.Equal(functionName, jobGetResponse.Job.Properties.Functions.SingleOrDefault().Name); Assert.NotNull(jobGetResponse.Job.Properties.Etag); Assert.NotEqual(jobCreateOrUpdateResponse.Job.Properties.Etag, jobGetResponse.Job.Properties.Etag); } finally { client.StreamingJobs.Delete(resourceGroupName, resourceName); resourceClient.ResourceGroups.Delete(resourceGroupName); } } }
public void Test_TransformationOperations_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; 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); // Get a streaming job to check JobGetParameters jobGetParameters = new JobGetParameters(string.Empty); 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); // Construct the Transformation string transformationName = TestUtilities.GenerateName("transformationtest"); int numberOfStreamingUnits = 1; Transformation transformation = new Transformation() { Name = transformationName, Properties = new TransformationProperties() { Query = "Select Id, Name from inputtest", StreamingUnits = numberOfStreamingUnits } }; // Add an Transformation TransformationCreateOrUpdateParameters transformationCreateOrUpdateParameters = new TransformationCreateOrUpdateParameters(); transformationCreateOrUpdateParameters.Transformation = transformation; TransformationCreateOrUpdateResponse transformationCreateOrUpdateResponse = client.Transformations.CreateOrUpdate(resourceGroupName, resourceName, transformationCreateOrUpdateParameters); Assert.Equal(HttpStatusCode.OK, transformationCreateOrUpdateResponse.StatusCode); Assert.Equal(numberOfStreamingUnits, transformationCreateOrUpdateResponse.Transformation.Properties.StreamingUnits); Assert.NotNull(transformationCreateOrUpdateResponse.Transformation.Properties.Etag); // Update the Transformation transformation.Properties.StreamingUnits = 3; transformation.Properties.Etag = transformationCreateOrUpdateResponse.Transformation.Properties.Etag; TransformationPatchParameters transformationPatchParameters = new TransformationPatchParameters(transformation.Properties); TransformationPatchResponse transformationPatchResponse = client.Transformations.Patch(resourceGroupName, resourceName, transformationName, transformationPatchParameters); Assert.Equal(HttpStatusCode.OK, transformationPatchResponse.StatusCode); Assert.Equal(3, transformationPatchResponse.Properties.StreamingUnits); Assert.NotNull(transformationPatchResponse.Properties.Etag); Assert.NotEqual(transformationCreateOrUpdateResponse.Transformation.Properties.Etag, transformationPatchResponse.Properties.Etag); } finally { client.StreamingJobs.Delete(resourceGroupName, resourceName); resourceClient.ResourceGroups.Delete(resourceGroupName); } } }
public void Test_InputOperations_ReferenceBlob() { 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; 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); // Get a streaming job to check JobGetParameters jobGetParameters = new JobGetParameters(string.Empty); 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); // Construct the Input StorageAccount storageAccount = new StorageAccount(); storageAccount.AccountName = TestHelper.AccountName; storageAccount.AccountKey = TestHelper.AccountKey; InputProperties inputProperties = new ReferenceInputProperties() { Serialization = new CsvSerialization() { Properties = new CsvSerializationProperties() { FieldDelimiter = ",", Encoding = "UTF8" } }, DataSource = new BlobReferenceInputDataSource() { Properties = new BlobReferenceInputDataSourceProperties() { StorageAccounts = new[] { storageAccount }, Container = "state", PathPattern = "{date}", DateFormat = "yyyy/MM/dd" } } }; string inputName = TestUtilities.GenerateName("inputtest"); Input input1 = new Input(inputName) { Properties = inputProperties }; // Add an input InputCreateOrUpdateParameters inputCreateOrUpdateParameters = new InputCreateOrUpdateParameters(); inputCreateOrUpdateParameters.Input = input1; InputCreateOrUpdateResponse inputCreateOrUpdateResponse = client.Inputs.CreateOrUpdate(resourceGroupName, resourceName, inputCreateOrUpdateParameters); Assert.Equal(HttpStatusCode.OK, inputCreateOrUpdateResponse.StatusCode); Assert.Equal(inputName, inputCreateOrUpdateResponse.Input.Name); Assert.Equal("Reference", inputCreateOrUpdateResponse.Input.Properties.Type); Assert.True(inputCreateOrUpdateResponse.Input.Properties is ReferenceInputProperties); ReferenceInputProperties referenceInputPropertiesInResponse1 = (ReferenceInputProperties) inputCreateOrUpdateResponse.Input.Properties; Assert.True(referenceInputPropertiesInResponse1.DataSource is BlobReferenceInputDataSource); BlobReferenceInputDataSource blobReferenceInputDataSourceInResponse1 = (BlobReferenceInputDataSource)referenceInputPropertiesInResponse1.DataSource; Assert.Equal("{date}", blobReferenceInputDataSourceInResponse1.Properties.PathPattern); Assert.Equal("yyyy/MM/dd", blobReferenceInputDataSourceInResponse1.Properties.DateFormat); Assert.NotNull(inputCreateOrUpdateResponse.Input.Properties.Etag); // Get the input InputGetResponse inputGetResponse = client.Inputs.Get(resourceGroupName, resourceName, inputName); Assert.Equal(HttpStatusCode.OK, inputGetResponse.StatusCode); Assert.Equal(inputName, inputGetResponse.Input.Name); Assert.True(inputGetResponse.Input.Properties is ReferenceInputProperties); ReferenceInputProperties referenceInputPropertiesInResponse2 = (ReferenceInputProperties)inputGetResponse.Input.Properties; Assert.True(referenceInputPropertiesInResponse2.DataSource is BlobReferenceInputDataSource); BlobReferenceInputDataSource blobReferenceInputDataSourceInResponse2 = (BlobReferenceInputDataSource)referenceInputPropertiesInResponse2.DataSource; Assert.Equal("{date}", blobReferenceInputDataSourceInResponse2.Properties.PathPattern); Assert.Equal("yyyy/MM/dd", blobReferenceInputDataSourceInResponse2.Properties.DateFormat); Assert.Equal(inputCreateOrUpdateResponse.Input.Properties.Etag, inputGetResponse.Input.Properties.Etag); // List inputs InputListResponse inputListResponse = client.Inputs.ListInputInJob(resourceGroupName, resourceName, new InputListParameters()); Assert.Equal(HttpStatusCode.OK, inputListResponse.StatusCode); Assert.Equal(1, inputListResponse.Value.Count); // Test input connectivity DataSourceTestConnectionResponse response = client.Inputs.TestConnection(resourceGroupName, resourceName, inputName); Assert.Equal(OperationStatus.Succeeded, response.Status); Assert.Equal(DataSourceTestStatus.TestSucceeded, response.DataSourceTestStatus); // Update the input BlobReferenceInputDataSource blobReferenceInputDataSource = new BlobReferenceInputDataSource() { Properties = new BlobReferenceInputDataSourceProperties() { StorageAccounts = new[] { storageAccount }, Container = "state", PathPattern = "test.csv", DateFormat = "yyyy/MM/dd" } }; ((ReferenceInputProperties)inputProperties).DataSource = blobReferenceInputDataSource; inputProperties.Etag = inputCreateOrUpdateResponse.Input.Properties.Etag; InputPatchParameters inputPatchParameters = new InputPatchParameters(inputProperties); InputPatchResponse inputPatchResponse = client.Inputs.Patch(resourceGroupName, resourceName, inputName, inputPatchParameters); Assert.Equal(HttpStatusCode.OK, inputPatchResponse.StatusCode); Assert.True(inputPatchResponse.Properties is ReferenceInputProperties); ReferenceInputProperties referenceInputPropertiesInResponse3 = (ReferenceInputProperties)inputPatchResponse.Properties; Assert.True(referenceInputPropertiesInResponse3.DataSource is BlobReferenceInputDataSource); BlobReferenceInputDataSource blobReferenceInputDataSourceInResponse3 = (BlobReferenceInputDataSource)referenceInputPropertiesInResponse3.DataSource; Assert.Equal("test.csv", blobReferenceInputDataSourceInResponse3.Properties.PathPattern); Assert.Equal("yyyy/MM/dd", blobReferenceInputDataSourceInResponse3.Properties.DateFormat); Assert.NotNull(inputPatchResponse.Properties.Etag); Assert.NotEqual(inputCreateOrUpdateResponse.Input.Properties.Etag, inputPatchResponse.Properties.Etag); // Delete the inputs AzureOperationResponse deleteInputOperationResponse = client.Inputs.Delete(resourceGroupName, resourceName, inputName); Assert.Equal(HttpStatusCode.OK, deleteInputOperationResponse.StatusCode); // Check that there are 0 inputs in the job jobGetParameters = new JobGetParameters("inputs"); jobGetResponse = client.StreamingJobs.Get(resourceGroupName, resourceName, jobGetParameters); Assert.Equal(HttpStatusCode.OK, jobGetResponse.StatusCode); Assert.Equal(0, jobGetResponse.Job.Properties.Inputs.Count); } finally { client.StreamingJobs.Delete(resourceGroupName, resourceName); resourceClient.ResourceGroups.Delete(resourceGroupName); } } }
public void Test_InputOperations_EventHub() { 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; 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); // Get a streaming job to check JobGetParameters jobGetParameters = new JobGetParameters(string.Empty); 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); // Construct the Input InputProperties inputProperties = new StreamInputProperties() { Serialization = new CsvSerialization() { Properties = new CsvSerializationProperties() { FieldDelimiter = ",", Encoding = "UTF8" } }, DataSource = new EventHubStreamInputDataSource() { Properties = new EventHubStreamInputDataSourceProperties() { ServiceBusNamespace = "sdktest", EventHubName = "sdkeventhub", SharedAccessPolicyName = TestHelper.SharedAccessPolicyName, SharedAccessPolicyKey = TestHelper.SharedAccessPolicyKey, ConsumerGroupName = "sdkconsumergroup" } } }; string inputName = TestUtilities.GenerateName("inputtest"); Input input1 = new Input(inputName) { Properties = inputProperties }; // Add an input InputCreateOrUpdateParameters inputCreateOrUpdateParameters = new InputCreateOrUpdateParameters(); inputCreateOrUpdateParameters.Input = input1; InputCreateOrUpdateResponse inputCreateOrUpdateResponse = client.Inputs.CreateOrUpdate(resourceGroupName, resourceName, inputCreateOrUpdateParameters); Assert.Equal(HttpStatusCode.OK, inputCreateOrUpdateResponse.StatusCode); Assert.Equal(inputName, inputCreateOrUpdateResponse.Input.Name); Assert.Equal("Stream", inputCreateOrUpdateResponse.Input.Properties.Type); Assert.True(inputCreateOrUpdateResponse.Input.Properties.Serialization is CsvSerialization); CsvSerialization csvSerializationInResponse1 = (CsvSerialization)inputCreateOrUpdateResponse.Input.Properties.Serialization; Assert.Equal(",", csvSerializationInResponse1.Properties.FieldDelimiter); Assert.True(inputCreateOrUpdateResponse.Input.Properties is StreamInputProperties); StreamInputProperties streamInputPropertiesInResponse = (StreamInputProperties) inputCreateOrUpdateResponse.Input.Properties; Assert.True(streamInputPropertiesInResponse.DataSource is EventHubStreamInputDataSource); EventHubStreamInputDataSource eventHubInputDataSourceInResponse1 = (EventHubStreamInputDataSource)streamInputPropertiesInResponse.DataSource; Assert.Equal("sdktest", eventHubInputDataSourceInResponse1.Properties.ServiceBusNamespace); Assert.NotNull(streamInputPropertiesInResponse.Etag); // Test input connectivity DataSourceTestConnectionResponse response = client.Inputs.TestConnection(resourceGroupName, resourceName, inputName); Assert.Equal(OperationStatus.Succeeded, response.Status); Assert.Equal(DataSourceTestStatus.TestSucceeded, response.DataSourceTestStatus); // Update the input Serialization csvSerialization = new CsvSerialization() { Properties = new CsvSerializationProperties() { FieldDelimiter = "|", Encoding = "UTF8" } }; inputProperties.Serialization = csvSerialization; inputProperties.Etag = inputCreateOrUpdateResponse.Input.Properties.Etag; InputPatchParameters inputPatchParameters = new InputPatchParameters(inputProperties); InputPatchResponse inputPatchResponse = client.Inputs.Patch(resourceGroupName, resourceName, inputName, inputPatchParameters); Assert.Equal(HttpStatusCode.OK, inputPatchResponse.StatusCode); Assert.True(inputPatchResponse.Properties.Serialization is CsvSerialization); CsvSerialization csvSerializationInResponse2 = (CsvSerialization)inputPatchResponse.Properties.Serialization; Assert.Equal("|", csvSerializationInResponse2.Properties.FieldDelimiter); Assert.True(inputPatchResponse.Properties is StreamInputProperties); StreamInputProperties streamInputPropertiesInResponse2 = (StreamInputProperties)inputPatchResponse.Properties; Assert.True(streamInputPropertiesInResponse2.DataSource is EventHubStreamInputDataSource); EventHubStreamInputDataSource eventHubInputDataSourceInResponse2 = (EventHubStreamInputDataSource)streamInputPropertiesInResponse2.DataSource; Assert.Equal("sdktest", eventHubInputDataSourceInResponse2.Properties.ServiceBusNamespace); Assert.NotNull(inputPatchResponse.Properties.Etag); Assert.NotEqual(streamInputPropertiesInResponse.Etag, inputPatchResponse.Properties.Etag); // Delete the input AzureOperationResponse deleteInputOperationResponse = client.Inputs.Delete(resourceGroupName, resourceName, inputName); Assert.Equal(HttpStatusCode.OK, deleteInputOperationResponse.StatusCode); // Check that there are 0 inputs in the job jobGetParameters = new JobGetParameters("inputs"); jobGetResponse = client.StreamingJobs.Get(resourceGroupName, resourceName, jobGetParameters); Assert.Equal(HttpStatusCode.OK, jobGetResponse.StatusCode); Assert.Equal(0, jobGetResponse.Job.Properties.Inputs.Count); } finally { client.StreamingJobs.Delete(resourceGroupName, resourceName); resourceClient.ResourceGroups.Delete(resourceGroupName); } } }
public PSJob() { job = new Job(); }
// Construct the general Job object public static Job GetDefaultJob(string resourceName, string serviceLocation) { Job job = new Job { Name = resourceName, Location = serviceLocation, Properties = new JobProperties { Sku = new Sku() { Name = "standard" }, EventsOutOfOrderPolicy = EventsOutOfOrderPolicy.Drop, EventsOutOfOrderMaxDelayInSeconds = 0 } }; return job; }
public void Test_OutputOperations_ServiceBusTopic() { 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; 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); // Get a streaming job to check JobGetParameters jobGetParameters = new JobGetParameters(string.Empty); 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); // Construct the Output OutputProperties outputProperties = new OutputProperties(); string outputName = TestUtilities.GenerateName("outputtest"); string topicName = "sdktopic"; ServiceBusTopicOutputDataSource serviceBusTopicOutputDataSource = new ServiceBusTopicOutputDataSource() { Properties = new ServiceBusTopicOutputDataSourceProperties() { ServiceBusNamespace = "sdktest", TopicName = topicName, SharedAccessPolicyName = TestHelper.SharedAccessPolicyName, SharedAccessPolicyKey = TestHelper.SharedAccessPolicyKey, } }; JsonSerialization jsonSerialization = new JsonSerialization() { Properties = new JsonSerializationProperties() { Encoding = "UTF8", Format = Format.LineSeparated } }; outputProperties.DataSource = serviceBusTopicOutputDataSource; outputProperties.Serialization = jsonSerialization; Output output1 = new Output(outputName) { Properties = outputProperties }; // Add an output OutputCreateOrUpdateParameters outputCreateOrUpdateParameters = new OutputCreateOrUpdateParameters(); outputCreateOrUpdateParameters.Output = output1; OutputCreateOrUpdateResponse outputCreateOrUpdateResponse = client.Outputs.CreateOrUpdate(resourceGroupName, resourceName, outputCreateOrUpdateParameters); Assert.Equal(HttpStatusCode.OK, outputCreateOrUpdateResponse.StatusCode); Assert.Equal(outputName, outputCreateOrUpdateResponse.Output.Name); Assert.True(outputCreateOrUpdateResponse.Output.Properties.DataSource is ServiceBusTopicOutputDataSource); ServiceBusTopicOutputDataSource serviceBusTopicOutputDataSourceInResponse1 = (ServiceBusTopicOutputDataSource)outputCreateOrUpdateResponse.Output.Properties.DataSource; Assert.Equal(topicName, serviceBusTopicOutputDataSourceInResponse1.Properties.TopicName); Assert.NotNull(outputCreateOrUpdateResponse.Output.Properties.Etag); // Get the output OutputGetResponse outputGetResponse = client.Outputs.Get(resourceGroupName, resourceName, outputName); Assert.Equal(HttpStatusCode.OK, outputGetResponse.StatusCode); Assert.Equal(outputName, outputGetResponse.Output.Name); Assert.True(outputGetResponse.Output.Properties.DataSource is ServiceBusTopicOutputDataSource); ServiceBusTopicOutputDataSource serviceBusTopicOutputDataSourceInResponse2 = (ServiceBusTopicOutputDataSource)outputGetResponse.Output.Properties.DataSource; Assert.Equal(topicName, serviceBusTopicOutputDataSourceInResponse2.Properties.TopicName); // Test output connectivity DataSourceTestConnectionResponse response = client.Outputs.TestConnection(resourceGroupName, resourceName, outputName); Assert.Equal(OperationStatus.Succeeded, response.Status); Assert.Equal(DataSourceTestStatus.TestSucceeded, response.DataSourceTestStatus); // Update the output string newTopicName = TestUtilities.GenerateName("NewTopicName"); serviceBusTopicOutputDataSource.Properties.TopicName = newTopicName; outputProperties.DataSource = serviceBusTopicOutputDataSource; outputProperties.Etag = outputCreateOrUpdateResponse.Output.Properties.Etag; OutputPatchParameters outputPatchParameters = new OutputPatchParameters(outputProperties); OutputPatchResponse outputPatchResponse = client.Outputs.Patch(resourceGroupName, resourceName, outputName, outputPatchParameters); Assert.Equal(HttpStatusCode.OK, outputPatchResponse.StatusCode); Assert.True(outputPatchResponse.Properties.DataSource is ServiceBusTopicOutputDataSource); ServiceBusTopicOutputDataSource serviceBusTopicOutputDataSourceInResponse3 = (ServiceBusTopicOutputDataSource)outputPatchResponse.Properties.DataSource; Assert.Equal(newTopicName, serviceBusTopicOutputDataSourceInResponse3.Properties.TopicName); Assert.NotNull(outputPatchResponse.Properties.Etag); Assert.NotEqual(outputCreateOrUpdateResponse.Output.Properties.Etag, outputPatchResponse.Properties.Etag); // Delete the output AzureOperationResponse deleteOutputOperationResponse = client.Outputs.Delete(resourceGroupName, resourceName, outputName); Assert.Equal(HttpStatusCode.OK, deleteOutputOperationResponse.StatusCode); // Check there is no output any more jobGetParameters = new JobGetParameters("outputs"); jobGetResponse = client.StreamingJobs.Get(resourceGroupName, resourceName, jobGetParameters); Assert.Equal(HttpStatusCode.OK, jobGetResponse.StatusCode); Assert.Equal(0, jobGetResponse.Job.Properties.Outputs.Count); } finally { client.StreamingJobs.Delete(resourceGroupName, resourceName); resourceClient.ResourceGroups.Delete(resourceGroupName); } } }
public void Test_OutputOperations_AzureTable() { 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; 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); // Get a streaming job to check JobGetParameters jobGetParameters = new JobGetParameters(string.Empty); 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); // Construct the Output OutputProperties outputProperties = new OutputProperties(); string outputName = TestUtilities.GenerateName("outputtest"); string tableName = "samples"; AzureTableOutputDataSource azureTableOutputDataSource = new AzureTableOutputDataSource() { Properties = new AzureTableOutputDataSourceProperties() { AccountName = TestHelper.AccountName, AccountKey = TestHelper.AccountKey, PartitionKey = "partitionKey", RowKey = "rowKey", Table = tableName } }; outputProperties.DataSource = azureTableOutputDataSource; Output output1 = new Output(outputName) { Properties = outputProperties }; // Add an output OutputCreateOrUpdateParameters outputCreateOrUpdateParameters = new OutputCreateOrUpdateParameters(); outputCreateOrUpdateParameters.Output = output1; OutputCreateOrUpdateResponse outputCreateOrUpdateResponse = client.Outputs.CreateOrUpdate(resourceGroupName, resourceName, outputCreateOrUpdateParameters); Assert.Equal(HttpStatusCode.OK, outputCreateOrUpdateResponse.StatusCode); Assert.Equal(outputName, outputCreateOrUpdateResponse.Output.Name); Assert.True(outputCreateOrUpdateResponse.Output.Properties.DataSource is AzureTableOutputDataSource); AzureTableOutputDataSource azureTableOutputDataSourceInResponse1 = (AzureTableOutputDataSource)outputCreateOrUpdateResponse.Output.Properties.DataSource; Assert.Equal(tableName, azureTableOutputDataSourceInResponse1.Properties.Table); Assert.NotNull(outputCreateOrUpdateResponse.Output.Properties.Etag); // Get the output OutputGetResponse outputGetResponse = client.Outputs.Get(resourceGroupName, resourceName, outputName); Assert.Equal(HttpStatusCode.OK, outputGetResponse.StatusCode); Assert.Equal(outputName, outputGetResponse.Output.Name); Assert.True(outputGetResponse.Output.Properties.DataSource is AzureTableOutputDataSource); AzureTableOutputDataSource azureTableOutputDataSourceInResponse2 = (AzureTableOutputDataSource)outputGetResponse.Output.Properties.DataSource; Assert.Equal(tableName, azureTableOutputDataSourceInResponse2.Properties.Table); // Test output connectivity DataSourceTestConnectionResponse response = client.Outputs.TestConnection(resourceGroupName, resourceName, outputName); Assert.Equal(OperationStatus.Succeeded, response.Status); Assert.Equal(DataSourceTestStatus.TestSucceeded, response.DataSourceTestStatus); // Update the output string newTableName = TestUtilities.GenerateName("NewTableName"); azureTableOutputDataSource.Properties.Table = newTableName; outputProperties.DataSource = azureTableOutputDataSource; outputProperties.Etag = outputCreateOrUpdateResponse.Output.Properties.Etag; OutputPatchParameters outputPatchParameters = new OutputPatchParameters(outputProperties); OutputPatchResponse outputPatchResponse = client.Outputs.Patch(resourceGroupName, resourceName, outputName, outputPatchParameters); Assert.Equal(HttpStatusCode.OK, outputPatchResponse.StatusCode); Assert.True(outputPatchResponse.Properties.DataSource is AzureTableOutputDataSource); AzureTableOutputDataSource azureTableOutputDataSourceInResponse3 = (AzureTableOutputDataSource)outputPatchResponse.Properties.DataSource; Assert.Equal(newTableName, azureTableOutputDataSourceInResponse3.Properties.Table); Assert.NotNull(outputPatchResponse.Properties.Etag); Assert.NotEqual(outputCreateOrUpdateResponse.Output.Properties.Etag, outputPatchResponse.Properties.Etag); // Delete the output AzureOperationResponse deleteOutputOperationResponse = client.Outputs.Delete(resourceGroupName, resourceName, outputName); Assert.Equal(HttpStatusCode.OK, deleteOutputOperationResponse.StatusCode); // Check that there are 0 outputs in the job jobGetParameters = new JobGetParameters("outputs"); jobGetResponse = client.StreamingJobs.Get(resourceGroupName, resourceName, jobGetParameters); Assert.Equal(HttpStatusCode.OK, jobGetResponse.StatusCode); Assert.Equal(0, jobGetResponse.Job.Properties.Outputs.Count); } finally { client.StreamingJobs.Delete(resourceGroupName, resourceName); resourceClient.ResourceGroups.Delete(resourceGroupName); } } }