public async Task SendPipelineRequests() { try { // create a pipeline topology and live pipeline var pipelineTopology = BuildPipelineTopology(); var livePipeline = BuildLivePipeline(pipelineTopology.Name); //set topology without using helper function #region Snippet:Azure_VideoAnalyzerSamples_InvokeDirectMethod var setPipelineTopRequest = new PipelineTopologySetRequest(pipelineTopology); var directMethod = new CloudToDeviceMethod(setPipelineTopRequest.MethodName); directMethod.SetPayloadJson(setPipelineTopRequest.GetPayloadAsJson()); var setPipelineTopResponse = await serviceClient.InvokeDeviceMethodAsync(deviceId, moduleId, directMethod); #endregion Snippet:Azure_VideoAnalyzerSamples_InvokeDirectMethod // get a topology using helper function var getPipelineTopRequest = await InvokeDirectMethodHelper(new PipelineTopologyGetRequest(pipelineTopology.Name)); var getPipelineTopResponse = PipelineTopology.Deserialize(getPipelineTopRequest.GetPayloadAsJson()); // list all topologies var listPipelineTopRequest = await InvokeDirectMethodHelper(new PipelineTopologyListRequest()); var listPipelineTopResponse = PipelineTopologyCollection.Deserialize(listPipelineTopRequest.GetPayloadAsJson()); //set live pipeline var setLivePipelineRequest = await InvokeDirectMethodHelper(new LivePipelineSetRequest(livePipeline)); //activate live pipeline var activateLivePipelineRequest = await InvokeDirectMethodHelper(new LivePipelineActivateRequest(livePipeline.Name)); //get live pipeline var getLivePipelineRequest = await InvokeDirectMethodHelper(new LivePipelineGetRequest(livePipeline.Name)); var getLivePipelineResponse = LivePipeline.Deserialize(getLivePipelineRequest.GetPayloadAsJson()); // list all live pipeline var listLivePipelineRequest = await InvokeDirectMethodHelper(new LivePipelineListRequest()); var listLivePipelineResponse = LivePipelineCollection.Deserialize(listLivePipelineRequest.GetPayloadAsJson()); //getlive pipeline var deactiveLivePipeline = await InvokeDirectMethodHelper(new LivePipelineDeactivateRequest(livePipeline.Name)); var deleteLivePipeline = await InvokeDirectMethodHelper(new LivePipelineDeleteRequest(livePipeline.Name)); //delete live pipeline var deletePipelineTopology = await InvokeDirectMethodHelper(new PipelineTopologyDeleteRequest(pipelineTopology.Name)); } catch (Exception ex) { Console.WriteLine(ex.ToString()); Assert.Fail(); } }
/// <summary> /// Creates or updates a live pipeline. /// </summary> /// <remarks> /// Creates a new live pipeline or updates an existing one, with the given /// name. /// </remarks> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the resource group. The name is case insensitive. /// </param> /// <param name='accountName'> /// The Azure Video Analyzer account name. /// </param> /// <param name='livePipelineName'> /// Live pipeline unique identifier. /// </param> /// <param name='parameters'> /// The request parameters /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <LivePipeline> CreateOrUpdateAsync(this ILivePipelinesOperations operations, string resourceGroupName, string accountName, string livePipelineName, LivePipeline parameters, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, accountName, livePipelineName, parameters, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <summary> /// Creates or updates a live pipeline. /// </summary> /// <remarks> /// Creates a new live pipeline or updates an existing one, with the given /// name. /// </remarks> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the resource group. The name is case insensitive. /// </param> /// <param name='accountName'> /// The Azure Video Analyzer account name. /// </param> /// <param name='livePipelineName'> /// Live pipeline unique identifier. /// </param> /// <param name='parameters'> /// The request parameters /// </param> public static LivePipeline CreateOrUpdate(this ILivePipelinesOperations operations, string resourceGroupName, string accountName, string livePipelineName, LivePipeline parameters) { return(operations.CreateOrUpdateAsync(resourceGroupName, accountName, livePipelineName, parameters).GetAwaiter().GetResult()); }
public async Task SendRequests() { try { //create a pipeline topology and live pipeline var pipelineTopology = BuildPipelineTopology(); var livePipeline = BuildLivePipeline(pipelineTopology.Name); //set topology without using helper function #region Snippet:Azure_VideoAnalyzerSamples_InvokeDirectMethod var setPipelineTopRequest = new PipelineTopologySetRequest(pipelineTopology); var directMethod = new CloudToDeviceMethod(setPipelineTopRequest.MethodName); directMethod.SetPayloadJson(setPipelineTopRequest.GetPayloadAsJson()); var setPipelineTopResponse = await _serviceClient.InvokeDeviceMethodAsync(_deviceId, _moduleId, directMethod); #endregion Snippet:Azure_VideoAnalyzerSamples_InvokeDirectMethod // get a topology using helper function var getPipelineTopRequest = await InvokeDirectMethodHelper(new PipelineTopologyGetRequest(pipelineTopology.Name)); var getPipelineTopResponse = PipelineTopology.Deserialize(getPipelineTopRequest.GetPayloadAsJson()); // list all topologies var listPipelineTopRequest = await InvokeDirectMethodHelper(new PipelineTopologyListRequest()); var listPipelineTopResponse = PipelineTopologyCollection.Deserialize(listPipelineTopRequest.GetPayloadAsJson()); //set live pipeline var setLivePipelineRequest = await InvokeDirectMethodHelper(new LivePipelineSetRequest(livePipeline)); //activate live pipeline var activateLivePipelineRequest = await InvokeDirectMethodHelper(new LivePipelineActivateRequest(livePipeline.Name)); //get live pipeline var getLivePipelineRequest = await InvokeDirectMethodHelper(new LivePipelineGetRequest(livePipeline.Name)); var getLivePipelineResponse = LivePipeline.Deserialize(getLivePipelineRequest.GetPayloadAsJson()); // list all live pipeline var listLivePipelineRequest = await InvokeDirectMethodHelper(new LivePipelineListRequest()); var listLivePipelineResponse = LivePipelineCollection.Deserialize(listLivePipelineRequest.GetPayloadAsJson()); //getlive pipeline var deactiveLivePipeline = await InvokeDirectMethodHelper(new LivePipelineDeactivateRequest(livePipeline.Name)); var deleteLivePipeline = await InvokeDirectMethodHelper(new LivePipelineDeleteRequest(livePipeline.Name)); //delete live pipeline var deletePipelineTopology = await InvokeDirectMethodHelper(new PipelineTopologyDeleteRequest(pipelineTopology.Name)); //get an onvif device var onvifDeviceGetRequest = await InvokeDirectMethodHelper(new OnvifDeviceGetRequest(new UnsecuredEndpoint("rtsp://camerasimulator:8554"))); var onvifDeviceGetResponse = OnvifDevice.Deserialize(onvifDeviceGetRequest.GetPayloadAsJson()); //get all onvif devices on the network var onvifDiscoverRequest = await InvokeDirectMethodHelper(new OnvifDeviceDiscoverRequest()); var onvifDiscoverResponse = DiscoveredOnvifDeviceCollection.Deserialize(onvifDiscoverRequest.GetPayloadAsJson()); // create a remote device adapter and send a set request for it var iotDeviceName = "iotDeviceSample"; var remoteDeviceName = "remoteDeviceSample"; var iotDevice = await GetOrAddIoTDeviceAsync(iotDeviceName); var remoteDeviceAdapter = CreateRemoteDeviceAdapter(remoteDeviceName, iotDeviceName, iotDevice.Authentication.SymmetricKey.PrimaryKey); var remoteDeviceAdapterSetRequest = await InvokeDirectMethodHelper(new RemoteDeviceAdapterSetRequest(remoteDeviceAdapter)); var remoteDeviceAdapterSetResponse = RemoteDeviceAdapter.Deserialize(remoteDeviceAdapterSetRequest.GetPayloadAsJson()); //get a remote device adapter var remoteDeviceAdapterGetRequest = await InvokeDirectMethodHelper(new RemoteDeviceAdapterGetRequest(remoteDeviceName)); var remoteDeviceAdapterGetResponse = RemoteDeviceAdapter.Deserialize(remoteDeviceAdapterGetRequest.GetPayloadAsJson()); //list all remote device adapters var remoteDeviceAdapterListRequest = await InvokeDirectMethodHelper(new RemoteDeviceAdapterListRequest()); var remoteDeviceAdapterListResponse = RemoteDeviceAdapterCollection.Deserialize(remoteDeviceAdapterListRequest.GetPayloadAsJson()); //delete a remote device adapater var remoteDeviceAdapterDeleteRequest = await InvokeDirectMethodHelper(new RemoteDeviceAdapterDeleteRequest(remoteDeviceName)); } catch (Exception ex) { Console.WriteLine(ex.ToString()); Assert.Fail(); } }
public void LivePipelineLifeCycleTest() { using (MockContext context = this.StartMockContextAndInitializeClients(this.GetType())) { try { CreateVideoAnalyzerAccount(); var topologyName = TestUtilities.GenerateName("pt"); VideoAnalyzerClient.PipelineTopologies.CreateOrUpdate(ResourceGroup, AccountName, topologyName, new PipelineTopology( description: "The pipeline topology with rtsp source and video sink.", kind: Kind.Live, sku: new Sku(SkuName.LiveS1), parameters: new List <ParameterDeclaration> { new ParameterDeclaration { Name = RtspUserNameParameterName, Type = "SecretString", Description = "rtsp user name parameter", }, new ParameterDeclaration { Name = RtspPasswordParameterName, Type = "SecretString", }, new ParameterDeclaration { Name = RtspUrlParameterName, Type = "String", }, new ParameterDeclaration { Name = VideoNameParameterName, Type = "String", }, }, sources: new List <SourceNodeBase> { new RtspSource { Name = "rtspSource", Transport = "tcp", Endpoint = new UnsecuredEndpoint { Url = $"${{{RtspUrlParameterName}}}", Credentials = new UsernamePasswordCredentials { Username = $"${{{RtspUserNameParameterName}}}", Password = $"${{{RtspPasswordParameterName}}}", }, }, }, }, sinks: new List <SinkNodeBase> { new VideoSink { Name = "videoSink", VideoName = $"${{{VideoNameParameterName}}}", Inputs = new List <NodeInput> { new NodeInput("rtspSource"), }, VideoCreationProperties = new VideoCreationProperties { Title = "Parking Lot (Camera 1)", Description = "Parking lot south entrance", }, }, })); var topology = VideoAnalyzerClient.PipelineTopologies.Get(ResourceGroup, AccountName, topologyName); Assert.NotNull(topology); var livePipelineName = TestUtilities.GenerateName("lp"); var pipeline = new LivePipeline( name: livePipelineName, description: "test description", topologyName: topology.Name, bitrateKbps: 2000, parameters: new List <ParameterDefinition> { new ParameterDefinition(RtspUserNameParameterName, "userName"), new ParameterDefinition(RtspPasswordParameterName, "testPassword"), new ParameterDefinition(RtspUrlParameterName, "rtsp://testUrl"), new ParameterDefinition(VideoNameParameterName, TestUtilities.GenerateName("ve")), }); var livePipelines = VideoAnalyzerClient.LivePipelines.List(ResourceGroup, AccountName); Assert.Empty(livePipelines); VideoAnalyzerClient.LivePipelines.CreateOrUpdate(ResourceGroup, AccountName, livePipelineName, pipeline); var livePipeline = VideoAnalyzerClient.LivePipelines.Get(ResourceGroup, AccountName, livePipelineName); Assert.NotNull(livePipeline); Assert.Equal(livePipelineName, livePipeline.Name); livePipelines = VideoAnalyzerClient.LivePipelines.List(ResourceGroup, AccountName); Assert.NotNull(livePipelines); Assert.Single(livePipelines); VideoAnalyzerClient.LivePipelines.Delete(ResourceGroup, AccountName, livePipelineName); livePipelines = VideoAnalyzerClient.LivePipelines.List(ResourceGroup, AccountName); Assert.Empty(livePipelines); VideoAnalyzerClient.PipelineTopologies.Delete(ResourceGroup, AccountName, livePipelineName); } finally { DeleteVideoAnalyzerAccount(); } } }