docs: def get_vm_ip(name=None, session=None, call=None):
      '''
      Get the IP address of the VM
  
      .. code-block:: bash
  
          salt-cloud -a get_vm_ip xenvm01
  
      .. note:: Requires xen guest tools to be installed in VM
  
      '''
      if call == 'function':
          raise SaltCloudException(
              'This function must be called with -a or --action.'
          )
      if session is None:
          log.debug('New session being created')
          session = _get_session()
      vm = _get_vm(name, session=session)
      ret = None
      # -- try to get ip from vif
      vifs = session.xenapi.VM.get_VIFs(vm)
      if vifs is not None:
          for vif in vifs:
              if session.xenapi.VIF.get_ipv4_addresses(vif):
                  cidr = session.xenapi.VIF.get_ipv4_addresses(vif).pop()
                  ret, subnet = cidr.split('/')
                  log.debug(
                      'VM vif returned for instance: %s ip: %s', name, ret)
                  return ret
      # -- try to get ip from get tools metrics
      vgm = session.xenapi.VM.get_guest_metrics(vm)
      try:
          net = session.xenapi.VM_guest_metrics.get_networks(vgm)
          if "0/ip" in net.keys():
              log.debug(
                  'VM guest metrics returned for instance: %s 0/ip: %s',
                  name, net["0/ip"]
              )
              ret = net["0/ip"]
      # except Exception as ex:
      except XenAPI.Failure:
          log.info('Could not get vm metrics at this time')
      return ret