Public/Switch-P1Tenant.ps1
function Switch-P1Tenant { <# .Synopsis Switch to another version an existing PlannerOne tenant (service + web app). .Description Switch an existing PlannerOne tenant to another version. .Parameter Tenant The tenant name. .Parameter Version The version to switch to. .Example # Switch a PlannerOne tenant named P1Prod to V6.0.1624.73941. Switch-P1Tenant -Tenant P1Prod -Version 6.0.1624.73941 #> [cmdletbinding()] param( [Parameter(Mandatory=$true)] [string] $Tenant, [string] $Version ) Process { Write-Section "Switch tenant $Tenant to version $Version" Write-Warning "Migrate PlannerOne.Server to LAST version only for now" if (!(Test-Tenant $Tenant)) { Write-Warning "Tenant $Tenant does not exist." Write-Warning "Type Get-P1Tenant for a list of tenants." return } $package = Get-Package $P1SrvPackage if ($package -eq $null) { Write-Warning "Package $P1SrvPackage does not exist." Write-Warning "Call Install-P1Package with missing packages." return } $package = Get-Package $P1WebPackage if ($package -eq $null) { Write-Warning "Package $P1WebPackage does not exist." Write-Warning "Call Install-P1Package with missing packages." return } $serviceName = Get-ServiceNameFromTenant $Tenant $service = Get-Service -Name $serviceName if ($service -eq $null) { Write-Warning "Service $serviceName does not exist" Write-Warning "Switch operation canceled" return } $srvBinPath = Get-PackageFolder($P1SrvPackage) Write-Verbose "Server package folder is $srvBinPath" $srvBinFolder = "AppServer" #Test if service already exists # Link folder to repository $serverPath = Get-ServerPathFromTenant $Tenant if (!(Test-Path $serverPath)) { Write-Warning "$serverPath does not exist." Write-Warning "Switch operation canceled." return } Remove-Symlink $serverPath New-Symlink $serverPath "$srvBinPath\$srvBinFolder" Write-OK "Tenant '$Tenant' switched" } } |