/*
* Copyright 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.glance.api;
import java.net.URI;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.emc.storageos.glance.GlanceConstants;
import com.emc.storageos.glance.GlanceEndPointInfo;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.emc.storageos.glance.rest.client.GlanceRESTClient;
import com.emc.storageos.glance.errorhandling.GlanceApiException;
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
/**
* Glance API client
*/
public class GlanceApi {
private Logger _log = LoggerFactory.getLogger(GlanceApi.class);
private GlanceEndPointInfo endPoint;
private GlanceRESTClient client;
/**
* Create Glance API client
*
* @param provider Storage Provider URI
* @param client Jersey Client
* @return
*/
public GlanceApi (GlanceEndPointInfo endPointInfo, Client client) {
endPoint = endPointInfo;
this.client = new GlanceRESTClient(client, endPointInfo.getGlanceToken());
}
public GlanceRESTClient getClient() {
return client;
}
/**
* Gets Glance image by using passed token.
*
* @param String Token
* @return image ClientResponse
*/
public ClientResponse getGlanceImage(String uri, String token) {
Gson gson = new Gson();
ClientResponse js_response=null;
try{
client.setAuthTokenHeader(token);
js_response = client.get(URI.create(uri));
_log.debug("Inside getGlanceImage Response status {}", String.valueOf(js_response.getStatus()));
}
catch(Exception e){
_log.debug("Failed to get the glance image response");
throw GlanceApiException.exceptions.clientResponseGetFailure(js_response.toString());
} /* catch */
return js_response;
}
}