@@ -12,33 +12,68 @@ function Invoke-ExecTestRun {
1212
1313 try {
1414 $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter
15- Write-LogMessage - API $APIName - tenant $TenantFilter - message " Starting data collection and test run for tenant: $TenantFilter " - sev Info
16- $Batch = @ (
17- @ {
18- FunctionName = ' CIPPDBCacheData'
19- TenantFilter = $TenantFilter
20- QueueName = " Cache - $TenantFilter "
15+ $Mode = ($Request.Query.mode ?? $Request.Body.mode ?? ' both' ).ToString().ToLower()
16+ if ($Mode -notin @ (' both' , ' cache' , ' tests' )) { $Mode = ' both' }
17+
18+ switch ($Mode ) {
19+ ' tests' {
20+ Write-LogMessage - API $APIName - tenant $TenantFilter - message " Starting tests-only run for tenant: $TenantFilter " - sev Info
21+ $InstanceId = Start-CIPPDBTestsRun - TenantFilter $TenantFilter - Force
22+ $ResultMessage = " Successfully started test run for $TenantFilter "
23+ }
24+ ' cache' {
25+ Write-LogMessage - API $APIName - tenant $TenantFilter - message " Starting cache-only collection for tenant: $TenantFilter " - sev Info
26+ $Batch = @ (
27+ @ {
28+ FunctionName = ' CIPPDBCacheData'
29+ TenantFilter = $TenantFilter
30+ QueueName = " Cache - $TenantFilter "
31+ }
32+ )
33+ $InputObject = [PSCustomObject ]@ {
34+ OrchestratorName = " TestDataCollection-$TenantFilter "
35+ Batch = $Batch
36+ SkipLog = $false
37+ PostExecution = @ {
38+ FunctionName = ' CIPPDBCacheApplyBatch'
39+ Parameters = @ {
40+ TenantFilter = $TenantFilter
41+ }
42+ }
43+ }
44+ $InstanceId = Start-CIPPOrchestrator - InputObject $InputObject
45+ $ResultMessage = " Successfully started cache collection for $TenantFilter "
2146 }
22- )
23- $InputObject = [PSCustomObject ]@ {
24- OrchestratorName = " TestDataCollectionAndRun-$TenantFilter "
25- Batch = $Batch
26- SkipLog = $false
27- PostExecution = @ {
28- FunctionName = ' CIPPDBCacheApplyBatch'
29- Parameters = @ {
30- TestRun = $true
31- TenantFilter = $TenantFilter
47+ default {
48+ Write-LogMessage - API $APIName - tenant $TenantFilter - message " Starting data collection and test run for tenant: $TenantFilter " - sev Info
49+ $Batch = @ (
50+ @ {
51+ FunctionName = ' CIPPDBCacheData'
52+ TenantFilter = $TenantFilter
53+ QueueName = " Cache - $TenantFilter "
54+ }
55+ )
56+ $InputObject = [PSCustomObject ]@ {
57+ OrchestratorName = " TestDataCollectionAndRun-$TenantFilter "
58+ Batch = $Batch
59+ SkipLog = $false
60+ PostExecution = @ {
61+ FunctionName = ' CIPPDBCacheApplyBatch'
62+ Parameters = @ {
63+ TestRun = $true
64+ TenantFilter = $TenantFilter
65+ }
66+ }
3267 }
68+ $InstanceId = Start-CIPPOrchestrator - InputObject $InputObject
69+ $ResultMessage = " Successfully started data collection and test run for $TenantFilter "
3370 }
3471 }
3572
36- $InstanceId = Start-CIPPOrchestrator - InputObject $InputObject
37-
3873 $StatusCode = [HttpStatusCode ]::OK
39- $Body = [PSCustomObject ]@ { Results = " Successfully started data collection and test run for $TenantFilter " }
74+ $Body = [PSCustomObject ]@ { Results = $ResultMessage }
4075
41- Write-LogMessage - API $APIName - tenant $TenantFilter - message " Data collection and test run orchestration started. Instance ID: $InstanceId " - sev Info
76+ Write-LogMessage - API $APIName - tenant $TenantFilter - message " Mode ' $Mode ' orchestration started. Instance ID: $InstanceId " - sev Info
4277
4378 } catch {
4479 $ErrorMessage = Get-CippException - Exception $_
0 commit comments