Skip to content

Commit 78e72b7

Browse files
authored
Merge pull request #10016 from hvermis/master
[Datafactory] Adding 3 new commands to ADF V2 for blob event triggers
2 parents 2cc7b44 + c2b2016 commit 78e72b7

20 files changed

+5621
-44
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"properties": {
3+
"type": "BlobTrigger",
4+
"typeProperties": {
5+
"maxConcurrency": "10",
6+
"folderPath": "blobtriggertestpath",
7+
"linkedService": {
8+
"referenceName": "foo1",
9+
"type": "LinkedServiceReference"
10+
}
11+
12+
},
13+
"pipelines": [
14+
{
15+
"pipelineReference": {
16+
"type": "PipelineReference",
17+
"referenceName": "samplePipeline"
18+
},
19+
"parameters": {
20+
"OutputBlobName": "triggertest"
21+
}
22+
}
23+
]
24+
}
25+
}

src/DataFactory/DataFactoryV2.Test/ScenarioTests/TriggerTests.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,5 +55,26 @@ public void TestTriggerWithResourceId()
5555
{
5656
RunPowerShellTest(_logger, "Test-TriggerWithResourceId");
5757
}
58+
59+
[Fact]
60+
[Trait(Category.AcceptanceType, Category.CheckIn)]
61+
public void TestBlobEventTriggerSubscriptions()
62+
{
63+
RunPowerShellTest(_logger, "Test-BlobEventTriggerSubscriptions");
64+
}
65+
66+
[Fact]
67+
[Trait(Category.AcceptanceType, Category.CheckIn)]
68+
public void TestBlobEventTriggerSubscriptionsByInputObject()
69+
{
70+
RunPowerShellTest(_logger, "Test-BlobEventTriggerSubscriptionsByInputObject");
71+
}
72+
73+
[Fact]
74+
[Trait(Category.AcceptanceType, Category.CheckIn)]
75+
public void TestBlobEventTriggerSubscriptionsByResourceId()
76+
{
77+
RunPowerShellTest(_logger, "Test-BlobEventTriggerSubscriptionsByResourceId");
78+
}
5879
}
5980
}

src/DataFactory/DataFactoryV2.Test/ScenarioTests/TriggerTests.ps1

Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,199 @@ function Test-TriggerRun
145145
}
146146
}
147147

148+
<#
149+
.SYNOPSIS
150+
Creates a trigger and then does a Get to compare the results.
151+
Starts and Stops trigger and checks that there is at least one Trigger Run
152+
Deletes the created trigger at the end.
153+
#>
154+
function Test-BlobEventTriggerSubscriptions
155+
{
156+
$dfname = Get-DataFactoryName
157+
$rgname = Get-ResourceGroupName
158+
$rglocation = Get-ProviderLocation ResourceManagement
159+
$dflocation = Get-ProviderLocation DataFactoryManagement
160+
161+
New-AzResourceGroup -Name $rgname -Location $rglocation -Force
162+
163+
try
164+
{
165+
Set-AzDataFactoryV2 -ResourceGroupName $rgname -Name $dfname -Location $dflocation -Force
166+
167+
$lsName = "foo1"
168+
Set-AzDataFactoryV2LinkedService -ResourceGroupName $rgname -DataFactoryName $dfname -File .\Resources\linkedService.json -Name $lsName -Force
169+
170+
Set-AzDataFactoryV2Dataset -ResourceGroupName $rgname -DataFactoryName $dfname -Name "dsIn" -File .\Resources\dataset-dsIn.json -Force
171+
Set-AzDataFactoryV2Dataset -ResourceGroupName $rgname -DataFactoryName $dfname -Name "ds0_0" -File .\Resources\dataset-ds0_0.json -Force
172+
Set-AzDataFactoryV2Dataset -ResourceGroupName $rgname -DataFactoryName $dfname -Name "ds1_0" -File .\Resources\dataset-ds1_0.json -Force
173+
174+
$pipelineName = "samplePipeline"
175+
Set-AzDataFactoryV2Pipeline -ResourceGroupName $rgname -Name $pipelineName -DataFactoryName $dfname -File ".\Resources\pipeline.json" -Force
176+
177+
$triggername = "foo"
178+
$expected = Set-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername -File .\Resources\blobeventtrigger.json -Force
179+
$actual = Get-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername
180+
181+
Verify-Trigger $expected $actual $rgname $dfname $triggername
182+
183+
$startDate = [DateTime]::Parse("09/10/2017")
184+
Add-AzDataFactoryV2TriggerSubscription -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername
185+
$status = Get-AzDataFactoryV2TriggerSubscriptionStatus -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername
186+
while ($status.Status -ne "Enabled"){
187+
if ([Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::Mode -ne [Microsoft.Azure.Test.HttpRecorder.HttpRecorderMode]::Playback) {
188+
Start-Sleep -s 150
189+
}
190+
$status = Get-AzDataFactoryV2TriggerSubscriptionStatus -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername
191+
}
192+
193+
Start-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername -Force
194+
$started = Get-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername
195+
196+
Assert-AreEqual 'Started' $started.RuntimeState
197+
198+
Remove-AzDataFactoryV2TriggerSubscription -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername -Force
199+
200+
Stop-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername -Force
201+
$stopped = Get-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername
202+
203+
Assert-AreEqual 'Stopped' $stopped.RuntimeState
204+
205+
Remove-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername -Force
206+
}
207+
finally
208+
{
209+
CleanUp $rgname $dfname
210+
}
211+
}
212+
213+
<#
214+
.SYNOPSIS
215+
Creates a trigger and then does a Get to compare the results.
216+
Starts and Stops trigger and checks that there is at least one Trigger Run
217+
Deletes the created trigger at the end.
218+
#>
219+
function Test-BlobEventTriggerSubscriptionsByInputObject
220+
{
221+
$dfname = Get-DataFactoryName
222+
$rgname = Get-ResourceGroupName
223+
$rglocation = Get-ProviderLocation ResourceManagement
224+
$dflocation = Get-ProviderLocation DataFactoryManagement
225+
226+
New-AzResourceGroup -Name $rgname -Location $rglocation -Force
227+
228+
try
229+
{
230+
Set-AzDataFactoryV2 -ResourceGroupName $rgname -Name $dfname -Location $dflocation -Force
231+
232+
$lsName = "foo1"
233+
Set-AzDataFactoryV2LinkedService -ResourceGroupName $rgname -DataFactoryName $dfname -File .\Resources\linkedService.json -Name $lsName -Force
234+
235+
Set-AzDataFactoryV2Dataset -ResourceGroupName $rgname -DataFactoryName $dfname -Name "dsIn" -File .\Resources\dataset-dsIn.json -Force
236+
Set-AzDataFactoryV2Dataset -ResourceGroupName $rgname -DataFactoryName $dfname -Name "ds0_0" -File .\Resources\dataset-ds0_0.json -Force
237+
Set-AzDataFactoryV2Dataset -ResourceGroupName $rgname -DataFactoryName $dfname -Name "ds1_0" -File .\Resources\dataset-ds1_0.json -Force
238+
239+
$pipelineName = "samplePipeline"
240+
Set-AzDataFactoryV2Pipeline -ResourceGroupName $rgname -Name $pipelineName -DataFactoryName $dfname -File ".\Resources\pipeline.json" -Force
241+
242+
$triggername = "foo"
243+
$expected = Set-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername -File .\Resources\blobeventtrigger.json -Force
244+
$actual = Get-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername
245+
246+
Verify-Trigger $expected $actual $rgname $dfname $triggername
247+
248+
Add-AzDataFactoryV2TriggerSubscription $actual
249+
$status = Get-AzDataFactoryV2TriggerSubscriptionStatus $actual
250+
while ($status.Status -ne "Enabled"){
251+
if ([Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::Mode -ne [Microsoft.Azure.Test.HttpRecorder.HttpRecorderMode]::Playback) {
252+
Start-Sleep -s 150
253+
}
254+
$status = Get-AzDataFactoryV2TriggerSubscriptionStatus $actual
255+
}
256+
257+
Start-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername -Force
258+
$started = Get-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername
259+
260+
Assert-AreEqual 'Started' $started.RuntimeState
261+
262+
Remove-AzDataFactoryV2TriggerSubscription $started -Force
263+
264+
Stop-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername -Force
265+
$stopped = Get-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername
266+
267+
Assert-AreEqual 'Stopped' $stopped.RuntimeState
268+
269+
Remove-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername -Force
270+
}
271+
finally
272+
{
273+
CleanUp $rgname $dfname
274+
}
275+
}
276+
277+
<#
278+
.SYNOPSIS
279+
Creates a trigger and then does a Get to compare the results.
280+
Starts and Stops trigger and checks that there is at least one Trigger Run
281+
Deletes the created trigger at the end.
282+
#>
283+
function Test-BlobEventTriggerSubscriptionsByResourceId
284+
{
285+
$dfname = Get-DataFactoryName
286+
$rgname = Get-ResourceGroupName
287+
$rglocation = Get-ProviderLocation ResourceManagement
288+
$dflocation = Get-ProviderLocation DataFactoryManagement
289+
290+
New-AzResourceGroup -Name $rgname -Location $rglocation -Force
291+
292+
try
293+
{
294+
Set-AzDataFactoryV2 -ResourceGroupName $rgname -Name $dfname -Location $dflocation -Force
295+
296+
$lsName = "foo1"
297+
Set-AzDataFactoryV2LinkedService -ResourceGroupName $rgname -DataFactoryName $dfname -File .\Resources\linkedService.json -Name $lsName -Force
298+
299+
Set-AzDataFactoryV2Dataset -ResourceGroupName $rgname -DataFactoryName $dfname -Name "dsIn" -File .\Resources\dataset-dsIn.json -Force
300+
Set-AzDataFactoryV2Dataset -ResourceGroupName $rgname -DataFactoryName $dfname -Name "ds0_0" -File .\Resources\dataset-ds0_0.json -Force
301+
Set-AzDataFactoryV2Dataset -ResourceGroupName $rgname -DataFactoryName $dfname -Name "ds1_0" -File .\Resources\dataset-ds1_0.json -Force
302+
303+
$pipelineName = "samplePipeline"
304+
Set-AzDataFactoryV2Pipeline -ResourceGroupName $rgname -Name $pipelineName -DataFactoryName $dfname -File ".\Resources\pipeline.json" -Force
305+
306+
$triggername = "foo"
307+
$expected = Set-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername -File .\Resources\blobeventtrigger.json -Force
308+
$actual = Get-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername
309+
310+
Verify-Trigger $expected $actual $rgname $dfname $triggername
311+
312+
Add-AzDataFactoryV2TriggerSubscription -ResourceId $expected.Id
313+
$status = Get-AzDataFactoryV2TriggerSubscriptionStatus -ResourceId $expected.Id
314+
while ($status.Status -ne "Enabled"){
315+
if ([Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::Mode -ne [Microsoft.Azure.Test.HttpRecorder.HttpRecorderMode]::Playback) {
316+
Start-Sleep -s 150
317+
}
318+
$status = Get-AzDataFactoryV2TriggerSubscriptionStatus -ResourceId $expected.Id
319+
}
320+
321+
Start-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername -Force
322+
$started = Get-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername
323+
324+
Assert-AreEqual 'Started' $started.RuntimeState
325+
326+
Remove-AzDataFactoryV2TriggerSubscription -ResourceId $expected.Id -Force
327+
328+
Stop-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername -Force
329+
$stopped = Get-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername
330+
331+
Assert-AreEqual 'Stopped' $stopped.RuntimeState
332+
333+
Remove-AzDataFactoryV2Trigger -ResourceGroupName $rgname -DataFactoryName $dfname -Name $triggername -Force
334+
}
335+
finally
336+
{
337+
CleanUp $rgname $dfname
338+
}
339+
}
340+
148341
<#
149342
.SYNOPSIS
150343
Creates a trigger and then does a Get with resource id to compare the results.

0 commit comments

Comments
 (0)