1 Reply Latest reply on Jul 15, 2020 3:44 PM by bdmpastx

    convert edge gateway to advanced gateway

    alokkrathore Lurker

      Was trying to get a PowerShell script to convert edge gateway to advanced gateway on vCloud Director 9.1, we have some 100's of edges and would like to automate this process as we are planning an upgrade of VCD

        • 1. Re: convert edge gateway to advanced gateway
          bdmpastx Novice

          Here is a simple rest call powershell command I wrote because I had about 4000 or more.

          This is not complete but hopefully you get the gist (I didn't want to have to rip all my code up and sanitize it for web).

           

          $vcloud = connect-ciserver

          $sessionid = $vcloud.sessionid

                  $AllProtocols = [System.Net.SecurityProtocolType]'Ssl3,Tls,Tls11,Tls12'

                  [System.Net.ServicePointManager]::SecurityProtocol = $AllProtocols

          $egws = get-edgegateway

          foreach($edgegateway in $egws){

                  $edgeid = $edgegateway.id.replace("urn:vcloud:gateway:","")

                  $upgradeURI = ("https://$vcloud/api/admin/edgeGateway/$edgeid/action/convertToAdvancedGateway")

                 

                  $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"

                  $Headers.Add('x-vcloud-authorization', $sessionkey)

                  $Headers.Add('accept','application/*+xml;version=31.0')

                  $Headers.Add('Content-Type','application/xml')

                  $wr = (Invoke-WebRequest -uri $upgradeURI -Method Post -Headers $headers -UseBasicParsing).content

           

                  #check the status of the changes

                  [xml]$wrxml = $wr

                  $wrtaskhref= $wrxml.Task.href

                  Write-Verbose  "wrtaskhref: $wrtaskhref"

                  try{

                      while($ts -ne 'success')

                      {

                      [xml]$taskstatus = (Invoke-WebRequest -uri $wrtaskhref -Method get -Headers $headers).content

                      $ts = $taskstatus.Task.Status

                      Write-Verbose "ts: $ts"

                      start-sleep -Seconds 3}

                      }

                      catch{}

          }