docs: def ConfigureDatastore(config):
    """Guides the user through configuration of the datastore."""
    print("\n\n-=GRR Datastore=-\n"
          "For GRR to work each GRR server has to be able to communicate with\n"
          "the datastore. To do this we need to configure a datastore.\n")
  
    existing_datastore = grr_config.CONFIG.Get("Datastore.implementation")
  
    if not existing_datastore or existing_datastore == "FakeDataStore":
      ConfigureMySQLDatastore(config)
      return
  
    print("Found existing settings:\n  Datastore: %s" % existing_datastore)
    if existing_datastore == "SqliteDataStore":
      set_up_mysql = RetryBoolQuestion(
          "The SQLite datastore is no longer supported. Would you like to\n"
          "set up a MySQL datastore? Answering 'no' will abort config "
          "initialization.", True)
      if set_up_mysql:
        print("\nPlease note that no data will be migrated from SQLite to "
              "MySQL.\n")
        ConfigureMySQLDatastore(config)
      else:
        raise ConfigInitError()
    elif existing_datastore == "MySQLAdvancedDataStore":
      print("  MySQL Host: %s\n  MySQL Port: %s\n  MySQL Database: %s\n"
            "  MySQL Username: %s\n" %
            (grr_config.CONFIG.Get("Mysql.host"),
             grr_config.CONFIG.Get("Mysql.port"),
             grr_config.CONFIG.Get("Mysql.database_name"),
             grr_config.CONFIG.Get("Mysql.database_username")))
      if grr_config.CONFIG.Get("Mysql.client_key_path"):
        print("  MySQL client key file: %s\n"
              "  MySQL client cert file: %s\n"
              "  MySQL ca cert file: %s\n" %
              (grr_config.CONFIG.Get("Mysql.client_key_path"),
               grr_config.CONFIG.Get("Mysql.client_cert_path"),
               grr_config.CONFIG.Get("Mysql.ca_cert_path")))
  
      if not RetryBoolQuestion("Do you want to keep this configuration?", True):
        ConfigureMySQLDatastore(config)