resources/engine.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 |
function Get-QlikEngine { [CmdletBinding()] param ( [parameter(Position = 0, ValueFromPipelinebyPropertyName = $true)] [string]$id, [string]$filter, [switch]$full, [switch]$raw ) PROCESS { $path = "/qrs/engineservice" If ( $id ) { $path += "/$id" } If ( $full ) { $path += "/full" } If ( $raw ) { $rawOutput = $true } return Invoke-QlikGet $path $filter } } function Get-QlikValidEngines { [CmdletBinding()] param ( [parameter(Position = 0)] [string]$proxyId, [parameter(Position = 1)] [string]$proxyPrefix, [parameter(Position = 2)] [string]$appId, [parameter(Position = 3)] [ValidateSet("Production", "Development", "Any")] [string]$loadBalancingPurpose, [switch]$raw ) PROCESS { $json = @{ proxyId = $proxyId; proxyPrefix = $proxyPrefix; appId = $appId; loadBalancingPurpose = $loadBalancingPurpose } | ConvertTo-Json -Compress -Depth 10 If ( $raw ) { $rawOutput = $true } Invoke-QlikPost "/qrs/loadbalancing/validengines" $json } } function Update-QlikEngine { [CmdletBinding()] param ( [parameter(Mandatory = $true, ValueFromPipeline = $True, ValueFromPipelinebyPropertyName = $True, Position = 0)] [string]$id, [ValidateSet("IgnoreMaxLimit", "SoftMaxLimit", "HardMaxLimit")] [string]$workingSetSizeMode, [ValidateRange(0, 100)] [Int]$workingSetSizeLoPct, [ValidateRange(0, 100)] [Int]$workingSetSizeHiPct, [ValidateRange(0, 100)] [Int]$cpuThrottlePercentage, [ValidateRange(0, 256)] [int]$coresToAllocate, [Bool]$AllowDataLineage, [Bool]$StandardReload, [string]$documentDirectory, [Int]$documentTimeout, [int]$autosaveInterval, [int]$genericUndoBufferMaxSize, [ValidateRange(0, 5)] [int]$auditActivityLogVerbosity, [ValidateRange(0, 5)] [int]$auditSecurityLogVerbosity, [ValidateRange(0, 5)] [int]$systemLogVerbosity, [ValidateRange(0, 5)] [int]$externalServicesLogVerbosity, [ValidateRange(0, 5)] [int]$qixPerformanceLogVerbosity, [ValidateRange(0, 5)] [int]$serviceLogVerbosity, [ValidateRange(0, 5)] [int]$httpTrafficLogVerbosity, [ValidateRange(0, 5)] [int]$auditLogVerbosity, [ValidateRange(0, 5)] [int]$trafficLogVerbosity, [ValidateRange(0, 5)] [int]$sessionLogVerbosity, [ValidateRange(0, 5)] [int]$performanceLogVerbosity, [ValidateRange(0, 5)] [int]$sseLogVerbosity ) PROCESS { $engine = Get-QlikEngine -id $id -raw Write-Verbose $workingSetSizeMode if ( $workingSetSizeMode ) { switch ($workingSetSizeMode) { IgnoreMaxLimit { $sizeMode = 0 } SoftMaxLimit { $sizeMode = 1 } HardMaxLimit { $sizeMode = 2 } } $engine.settings.workingSetSizeMode = $sizeMode } if ($workingSetSizeLoPct) { $engine.settings.workingSetSizeLoPct = $workingSetSizeLoPct } if ($workingSetSizeHiPct) { $engine.settings.workingSetSizeHiPct = $workingSetSizeHiPct } if ($cpuThrottlePercentage) { $engine.settings.cpuThrottlePercentage = $cpuThrottlePercentage } if ($coresToAllocate) { $coremask = , 0 * 8 $bin = ''.PadRight($coresToAllocate, '1').PadLeft(256, '0') for ($i = 0; $i -lt 8; $i++) { $coremask[$i] = [convert]::ToInt32($bin.Substring($i * 32, 32), 2) } $engine.settings.maxCoreMaskPersisted = $coremask[7] $engine.settings.maxCoreMaskHiPersisted = $coremask[6] $engine.settings.maxCoreMaskGrp1Persisted = $coremask[5] $engine.settings.maxCoreMaskGrp1HiPersisted = $coremask[4] $engine.settings.maxCoreMaskGrp2Persisted = $coremask[3] $engine.settings.maxCoreMaskGrp2HiPersisted = $coremask[2] $engine.settings.maxCoreMaskGrp3Persisted = $coremask[1] $engine.settings.maxCoreMaskGrp3HiPersisted = $coremask[0] } if ($documentDirectory) { $engine.settings.documentDirectory = $documentDirectory } if ($AllowDataLineage) { $engine.settings.allowDataLineage = $AllowDataLineage } if ($StandardReload) { $engine.settings.standardReload = $StandardReload } if ($documentTimeout) { $engine.settings.documentTimeout = $documentTimeout } if ($autosaveInterval) { $engine.settings.autosaveInterval = $autosaveInterval } if ($genericUndoBufferMaxSize) { $engine.settings.genericUndoBufferMaxSize = $genericUndoBufferMaxSize } if ($PSBoundParameters.ContainsKey('auditActivityLogVerbosity')) { $engine.settings.auditActivityLogVerbosity = $auditActivityLogVerbosity } if ($PSBoundParameters.ContainsKey('auditSecurityLogVerbosity')) { $engine.settings.auditSecurityLogVerbosity = $auditSecurityLogVerbosity } if ($PSBoundParameters.ContainsKey('systemLogVerbosity')) { $engine.settings.systemLogVerbosity = $systemLogVerbosity } if ($PSBoundParameters.ContainsKey('externalServicesLogVerbosity')) { $engine.settings.externalServicesLogVerbosity = $externalServicesLogVerbosity } if ($PSBoundParameters.ContainsKey('qixPerformanceLogVerbosity')) { $engine.settings.qixPerformanceLogVerbosity = $qixPerformanceLogVerbosity } if ($PSBoundParameters.ContainsKey('serviceLogVerbosity')) { $engine.settings.serviceLogVerbosity = $serviceLogVerbosity } if ($PSBoundParameters.ContainsKey('httpTrafficLogVerbosity')) { $engine.settings.httpTrafficLogVerbosity = $httpTrafficLogVerbosity } if ($PSBoundParameters.ContainsKey('auditLogVerbosity')) { $engine.settings.auditLogVerbosity = $auditLogVerbosity } if ($PSBoundParameters.ContainsKey('trafficLogVerbosity')) { $engine.settings.trafficLogVerbosity = $trafficLogVerbosity } if ($PSBoundParameters.ContainsKey('sessionLogVerbosity')) { $engine.settings.sessionLogVerbosity = $sessionLogVerbosity } if ($PSBoundParameters.ContainsKey('performanceLogVerbosity')) { $engine.settings.performanceLogVerbosity = $performanceLogVerbosity } if ($PSBoundParameters.ContainsKey('sseLogVerbosity')) { $engine.settings.sseLogVerbosity = $sseLogVerbosity } $json = $engine | ConvertTo-Json -Compress -Depth 10 return Invoke-QlikPut -path "/qrs/engineservice/$id" -body $json } } |