function Get-MicroserviceNewRelicMapping { <# .SYNOPSIS Determine which microservices should report to New Relic. Utilized by Classify-Packages. .PARAMETER BuildCheckoutDirectory Directory where the code is checked out by TC. .PARAMETER PackageMetadata Packages object to populate. #> [CmdletBinding()] param( $BuildCheckoutDirectory, [PSObject]$PackageMetadata ) # For each of the microservice packages, figure out if they will have new relic enabled or disabled. # Build out the config checkout directory. $configCheckoutDirectory = (Join-Path $BuildCheckoutDirectory "config-defaults") if($PackageMetadata.DisableMicroserviceNewRelic) { Write-Host "Now determining which microservices need New Relic Enabled/Disabled" # Read in the package names to leave new-relic enabled for. $newRelicServicePath = (Join-Path $configCheckoutDirectory "NewRelicMicroServices/NewRelicMicroServices.txt") if(Test-Path $newRelicServicePath) { $newRelicMicroservicesToLeaveEnabled = [array](Get-Content -Path $newRelicServicePath) } else { Write-Warning "Could not find NewRelicMicroServices.txt to leave new relic enabled. Assuming no microservices should have NewRelic enabled." $newRelicMicroservicesToLeaveEnabled = $null; } foreach($package in $PackageMetadata.AppPackagesToInstall) { if($package.IsMicroservice) { $enableNewRelic = ($newRelicMicroservicesToLeaveEnabled -contains $package.Name) Add-Member -InputObject $package -NotePropertyName "EnableNewRelic" -NotePropertyValue $enableNewRelic -Force } } } else { Write-Host "New Relic will be left enabled on microservices." } return $PackageMetadata }