/** * Copyright 2011 Intuit Inc. All Rights Reserved */ package com.intuit.tank; /* * #%L * Agent Rest Client * %% * Copyright (C) 2011 - 2015 Intuit Inc. * %% * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * #L% */ import java.io.InputStream; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.UriBuilder; import com.intuit.tank.api.model.v1.agent.TankHttpClientDefinitionContainer; import com.intuit.tank.api.service.v1.agent.AgentService; import com.intuit.tank.rest.BaseRestClient; import com.intuit.tank.rest.util.ServiceConsants; import com.intuit.tank.vm.agent.messages.AgentAvailability; import com.intuit.tank.vm.agent.messages.AgentData; import com.intuit.tank.vm.agent.messages.AgentTestStartData; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; /** * CloudServiceClient * * @author dangleton * */ public class AgentServiceClient extends BaseRestClient { private static final String SERVICE_BASE_URL = ServiceConsants.REST_SERVICE_CONTEXT + AgentService.SERVICE_RELATIVE_PATH; /** * * @param serviceUrl */ public AgentServiceClient(String serviceUrl) { super(serviceUrl, null, null); } /** * * @param serviceUrl */ public AgentServiceClient(String serviceUrl, final String proxyServer, final Integer proxyPort) { super(serviceUrl, proxyServer, proxyPort); } /** * * @return */ protected String getServiceBaseUrl() { return SERVICE_BASE_URL; } public String getSettings() { UriBuilder uriBuilder = UriBuilder.fromUri(urlBuilder.buildUrl(AgentService.METHOD_SETTINGS)); WebResource webResource = client.resource(uriBuilder.build()); ClientResponse response = webResource.accept(MediaType.APPLICATION_XML).get(ClientResponse.class); exceptionHandler.checkStatusCode(response); return response.getEntity(String.class); } public TankHttpClientDefinitionContainer getClientDefinitions() { UriBuilder uriBuilder = UriBuilder.fromUri(urlBuilder.buildUrl(AgentService.METHOD_CLIENTS)); WebResource webResource = client.resource(uriBuilder.build()); ClientResponse response = webResource.accept(MediaType.APPLICATION_XML).get(ClientResponse.class); exceptionHandler.checkStatusCode(response); return response.getEntity(TankHttpClientDefinitionContainer.class); } public InputStream getSupportFiles() { UriBuilder uriBuilder = UriBuilder.fromUri(urlBuilder.buildUrl(AgentService.METHOD_SUPPORT)); WebResource webResource = client.resource(uriBuilder.build()); ClientResponse response = webResource.accept(MediaType.APPLICATION_OCTET_STREAM).get(ClientResponse.class); exceptionHandler.checkStatusCode(response); return response.getEntityInputStream(); } /** * * @param data * @return */ public AgentTestStartData agentReady(AgentData data) { WebResource webResource = client.resource(urlBuilder.buildUrl(AgentService.METHOD_AGENT_READY)); // webResource.entity(data); ClientResponse response = webResource.accept(MediaType.APPLICATION_XML).post(ClientResponse.class, data); exceptionHandler.checkStatusCode(response); return response.getEntity(AgentTestStartData.class); } /** * * @param atailabiliity */ public void standaloneAgentAvailable(AgentAvailability atailabiliity) { WebResource webResource = client.resource(urlBuilder.buildUrl(AgentService.METHOD_AGENT_AVAILABILITY)); ClientResponse response = webResource.accept(MediaType.APPLICATION_XML).post(ClientResponse.class, atailabiliity); exceptionHandler.checkStatusCode(response); } }