package io.fathom.cloud.openstack.client;
import io.fathom.cloud.openstack.client.identity.TokenProvider;
import io.fathom.http.HttpClient;
import io.fathom.http.HttpRequest;
import java.net.URI;
import java.util.List;
import com.google.common.net.HttpHeaders;
public abstract class OpenstackServiceClientBase extends SimpleRestClient {
private static final String HEADER_AUTH_TOKEN = "X-Auth-Token";
protected final TokenProvider tokenProvider;
public OpenstackServiceClientBase(HttpClient httpClient, URI uri, TokenProvider tokenProvider) {
super(httpClient, uri);
this.tokenProvider = tokenProvider;
}
@Override
protected void addHeaders(HttpRequest request) throws RestClientException {
super.addHeaders(request);
List<String> headers = request.getRequestHeaders(HttpHeaders.ACCEPT);
if (headers.isEmpty()) {
request.setHeader(HttpHeaders.ACCEPT, "application/json");
}
if (tokenProvider != null) {
String token = tokenProvider.getToken();
if (token != null) {
request.setHeader(HEADER_AUTH_TOKEN, token);
}
}
}
}