@classmethod
  def ensure_machine_is_compatible(cls, host, keyname, database, is_verbose):
    # first, make sure the image is an appscale image
    if not cls.does_host_have_location(host, keyname, cls.CONFIG_DIR,
      is_verbose):
      raise AppScaleException("The machine at {0} does not have " \
        "AppScale installed.".format(host))

    # Make sure the remote version matches the tools version.
    version_dir = '{}/{}'.format(cls.CONFIG_DIR, APPSCALE_VERSION)
    if not cls.does_host_have_location(host, keyname, version_dir, is_verbose):
      host_version = cls.get_host_appscale_version(host, keyname, is_verbose)
      if host_version:
        raise AppScaleException("The machine at {0} has AppScale {1} installed,"
          " but you are trying to use it with version {2} of the AppScale "
          "Tools. Please use the same version of the AppScale Tools that the "
          "host machine runs.".format(host, host_version, APPSCALE_VERSION))
      else:
        raise AppScaleException("The machine at {0} does not have AppScale "  \
          "{1} installed.".format(host, APPSCALE_VERSION))

    # Make sure we have the requested database installed.
    db_file = '{}/{}/{}'.format(cls.CONFIG_DIR, APPSCALE_VERSION, database)
    if not cls.does_host_have_location(host, keyname, db_file, is_verbose):
      raise AppScaleException("The machine at {0} does not have support for"
        " {1} installed.".format(host, database))
Verifies that the specified host has AppScale installed on it.
dataset/ETHPy150Open AppScale/appscale-tools/lib/remote_helper.py/RemoteHelper.ensure_machine_is_compatible