adhoc/access-to-json-prop.ps1
|
.\debug\~~Load-all-cmdlets-locally.ps1 $Stage = 'UAT' $DataFactoryName = "SQLPlayerDemo-$Stage" $RootFolder = "x:\!WORK\GitAz\sqlplayer\DataServices\ADF-demo\SQLPlayerDemo" Test-Path -Path $RootFolder | Out-Null Clear-Host $adf = Import-AdfFromFolder -RootFolder "$RootFolder" -FactoryName $DataFactoryName Write-Host ($adf | Format-List | Out-String) $depobj = Get-AdfObjectByName -adf $adf -name "LS_AzureKeyVault" -type "LinkedService" $depobj $depobj = Get-AdfObjectByName -adf $adf -name "Output_Binary" Write-Host "depobj:" $depobj $depobj.GetType().FullName Clear-Host Update-PropertiesFromCsvFile -adf $adf -stage 'uat' Clear-Host Update-PropertiesFromCsvFile -adf $adf -stage 'broken' $file = "x:\!WORK\GitAz\sqlplayer\DataServices\ADF-demo\SQLPlayerDemo\pipeline\PL_CopyMovies.json" $json = (Get-Content $file | ConvertFrom-Json) $prop = "$($_.name).properties.$($_.path) = `"$($_.value)`"" #Invoke-Expression "`$json.properties.$($_.path) = `"$($_.value)`"" $json.properties.activities[0].outputs[0].parameters.BlobContainer $json.properties.activities[] | select https://programminghistorian.org/en/lessons/json-and-jq https://jqplay.org/ $JSONFile = ConvertFrom-Json "$(get-content ".\ConfigurationData.json")" $ConfigurationData = @{} $JSONFile | get-member -MemberType NoteProperty | Where-Object{ -not [string]::IsNullOrEmpty($JSONFile."$($_.name)")} | ForEach-Object {$ConfigurationData.add($_.name,$JSONFile."$($_.name)")} $QuickJson | get-member -MemberType NoteProperty | Where-Object{ -not [string]::IsNullOrEmpty($QuickJson."$($_.name)")} | ForEach-Object {$MyHash.add($_.name, $QuickJson."$($_.name)")} $json.properties.activities | get-member -MemberType NoteProperty https://html.developreference.com/article/12424488/How+to+sort+an+object+by+keys+using+powershell # Debug OFF $DebugPreference = "SilentlyContinue" # Reading CSV $configFileName1 = "x:\!WORK\GitHub\!SQLPlayer\azure.datafactory.tools\test\BigFactorySample2\deployment\config-uat.csv" $configFileName2 = "x:\!WORK\GitHub\!SQLPlayer\azure.datafactory.tools\test\BigFactorySample2\deployment\config-badformat.csv" $configFileName3 = "x:\!WORK\GitHub\!SQLPlayer\azure.datafactory.tools\test\BigFactorySample2\deployment\config-c002.csv" $configFileName = $configFileName1 $configtxt = Get-Content $configFileName | Out-String $configcsv = ConvertFrom-Csv $configtxt $configcsv $configcsv.GetType().BaseType #Array $configcsv.Count #3 rows $row0 = $configcsv[0] $row0 $proc_header = "type","name","path","value","empty" $configcsvh = ConvertFrom-Csv $configtxt -Header $proc_header $configcsvh . ".\private\Read-CsvConfigFile.ps1" $csv = Read-CsvConfigFile -Path $configFileName1 $csv = Read-CsvConfigFile -Path $configFileName2 $csv = Read-CsvConfigFile -Path $configFileName3 $csv $RootFolder = "x:\!WORK\GitHub\!SQLPlayer\azure.datafactory.tools\test\BigFactorySample2\" $adf = Import-AdfFromFolder -RootFolder "$RootFolder" -FactoryName 'coscos' Write-Host ($adf | Format-List | Out-String) $o = Get-AdfObjectByName -adf $adf -name "PL_Wait_Dynamic" -type "pipeline" $o $o.Body.properties.parameters $o.Body.properties.parameters.WaitInSec $v1 = "{""type"": ""int32""}" $v1 $v2 = ConvertFrom-Json $v1 $v2 $o.Body.properties.parameters.WaitInSec = $v1 $o.Body.properties.parameters.WaitInSec = $v2 $o.Body.properties.parameters.WaitInSec $v1 = "{'type': 'int32','defaultValue': 22}" $v2 = ConvertFrom-Json $v1 $o.Body.properties.parameters.WaitInSec = $v2 $o.Body.properties.parameters.WaitInSec $o.Body.properties.parameters.WaitInSec.GetType() Update-PropertiesFromCsvFile -adf $adf -stage 'X:\!WORK\GitHub\!SQLPlayer\azure.datafactory.tools\test\BigFactorySample2\deployment\config-c002a.csv' Update-PropertiesFromCsvFile -adf $adf -stage 'X:\!WORK\GitHub\!SQLPlayer\azure.datafactory.tools\test\BigFactorySample2\deployment\config-c002b.csv' Update-PropertiesFromCsvFile -adf $adf -stage 'X:\!WORK\GitHub\!SQLPlayer\azure.datafactory.tools\test\BigFactorySample2\deployment\config-c002.csv' Update-PropertiesFromCsvFile -adf $adf -stage 'X:\!WORK\GitHub\!SQLPlayer\azure.datafactory.tools\test\BigFactorySample2\deployment\config-commented.csv' # Environment variables Get-Item -Path Env:* | Sort-Object Name $env:COMPUTERNAME $value = 'Some text $env:COMPUTERNAME123' Write-Host "$value" $expval = $ExecutionContext.InvokeCommand.ExpandString($value); Write-Host "$expval" $value = 'Some text $($env:COMPUTERNAME)123' Write-Host "$value" $expval = $ExecutionContext.InvokeCommand.ExpandString($value); Write-Host "$expval" # https://nerdymishka.com/articles/expand-string-in-powershell/ $version = "1.2.3" $value = 'Some text $version' Write-Host "$value" $expval = $ExecutionContext.InvokeCommand.ExpandString($value); Write-Host "$expval" Get-Variable Get-Variable -s 0 $Env:MappedSecret = 'SecretPa$$w0rd' $Env:COMPUTERNAME = 'abc' $local:PSHOME $local:ExecutionContext.InvokeCommand $global:ShellId $env |