} catch (IOException e) {
log.warnf("Could not connect to remote domain controller %s:%d", host.getHostAddress(), port);
throw new IllegalStateException(e);
}
SlaveRegistrationError error = null;
try {
error = new RegisterModelControllerRequest().executeForResult(executor, ManagementClientChannelStrategy.create(channel));
} catch (Exception e) {
log.warnf("Error retrieving domain model from remote domain controller %s:%d: %s", host.getHostAddress(), port, e.getMessage());
throw new IllegalStateException(e);
}
if (error != null) {
if (error.getErrorCode() == ErrorCode.HOST_ALREADY_EXISTS) {
throw new HostAlreadyExistsException(error.getErrorMessage());
}
throw new IllegalStateException(error.getErrorMessage());
}
}