lib/vcloud-rest/vcloud/vapp_networking.rb
def get_vapp_edge_public_ip(vAppId)
      # Check the network configuration section
      params = {
        'method' => :get,
        'command' => "/vApp/vapp-#{vAppId}/networkConfigSection"
      }

      response, headers = send_request(params)

      # FIXME: this will return nil if the vApp uses multiple vApp Networks
      # with Edge devices in natRouted/portForwarding mode.
      config = response.css('NetworkConfigSection/NetworkConfig/Configuration')

      fenceMode = config.css('/FenceMode').text
      natType = config.css('/Features/NatService/NatType').text

      raise InvalidStateError, "Invalid request because FenceMode must be set to natRouted." unless fenceMode == "natRouted"
      raise InvalidStateError, "Invalid request because NatType must be set to portForwarding." unless natType == "portForwarding"

      # Check the routerInfo configuration where the global external IP is defined
      edgeIp = config.css('/RouterInfo/ExternalIp')
      edgeIp = edgeIp.text unless edgeIp.nil?
    end
def get_vapp_edge_public_ip(vAppId)
      # Check the network configuration section
      params = {
        'method' => :get,
        'command' => "/vApp/vapp-#{vAppId}/networkConfigSection"
      }

      response, headers = send_request(params)

      # FIXME: this will return nil if the vApp uses multiple vApp Networks
      # with Edge devices in natRouted/portForwarding mode.
      config = response.css('NetworkConfigSection/NetworkConfig/Configuration')

      fenceMode = config.css('/FenceMode').text
      natType = config.css('/Features/NatService/NatType').text

      raise InvalidStateError, "Invalid request because FenceMode must be set to natRouted." unless fenceMode == "natRouted"
      raise InvalidStateError, "Invalid request because NatType must be set to portForwarding." unless natType == "portForwarding"

      # Check the routerInfo configuration where the global external IP is defined
      edgeIp = config.css('/RouterInfo/ExternalIp')
      edgeIp = edgeIp.text unless edgeIp.nil?
    end
def get_vapp_edge_public_ip ( vAppId ) # Check the network configuration section params = { 'method' => :get , 'command' => "/vApp/vapp-#{vAppId}/networkConfigSection" } response , headers = send_request ( params ) # FIXME: this will return nil if the vApp uses multiple vApp Networks # with Edge devices in natRouted/portForwarding mode. config = response . css ( 'NetworkConfigSection/NetworkConfig/Configuration' ) fenceMode = config . css ( '/FenceMode' ) . text natType = config . css ( '/Features/NatService/NatType' ) . text raise InvalidStateError , "Invalid request because FenceMode must be set to natRouted." unless fenceMode == "natRouted" raise InvalidStateError , "Invalid request because NatType must be set to portForwarding." unless natType == "portForwarding" # Check the routerInfo configuration where the global external IP is defined edgeIp = config . css ( '/RouterInfo/ExternalIp' ) edgeIp = edgeIp . text unless edgeIp . nil? end
get vApp edge public IP from the vApp ID
 Only works when:
 - vApp needs to be poweredOn
 - FenceMode is set to "natRouted"
 - NatType" is set to "portForwarding
 This will be required to know how to connect to VMs behind the Edge device.
get vApp edge public IP from the vApp ID Only works when : - vApp needs to be poweredOn - FenceMode is set to natRouted - NatType is set to portForwarding This will be required to know how to connect to VMs behind the Edge device .