Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
package com.orbitz.consul;
import com.orbitz.consul.async.ConsulResponseCallback;
import com.orbitz.consul.model.ConsulResponse;
import com.orbitz.consul.model.catalog.CatalogDeregistration;
import com.orbitz.consul.model.catalog.CatalogNode;
import com.orbitz.consul.model.catalog.CatalogRegistration;
import com.orbitz.consul.model.catalog.CatalogService;
import com.orbitz.consul.model.health.Node;
import com.orbitz.consul.option.QueryOptions;
import com.orbitz.consul.util.Http;
import retrofit2.Call;
import retrofit2.Retrofit;
import retrofit2.http.*;
import java.util.List;
import java.util.Map;
import static com.orbitz.consul.util.Http.extractConsulResponse;
import static com.orbitz.consul.util.Http.handle;
/**
* HTTP Client for /v1/catalog/ endpoints.
*/
public class CatalogClient {
private final Api api;
/**
* Constructs an instance of this class.
*
* @param retrofit The {@link Retrofit} to build a client from.
*/
CatalogClient(Retrofit retrofit) {
this.api = retrofit.create(Api.class);
}
/**
* Retrieves all datacenters.
*
* GET /v1/catalog/datacenters
*
* @return A list of datacenter names.
*/
public List getDatacenters() {
return Http.extract(api.getDatacenters());
}
/**
* Retrieves all nodes.
*
* GET /v1/catalog/nodes
*
* @return A {@link com.orbitz.consul.model.ConsulResponse} containing a list of
* {@link com.orbitz.consul.model.health.Node} objects.
*/
public ConsulResponse> getNodes() {
return getNodes(QueryOptions.BLANK);
}
/**
* Retrieves all nodes for a given datacenter with {@link com.orbitz.consul.option.QueryOptions}.
*
* GET /v1/catalog/nodes?dc={datacenter}
*
* @param queryOptions The Query Options to use.
* @return A {@link com.orbitz.consul.model.ConsulResponse} containing a list of
* {@link com.orbitz.consul.model.health.Node} objects.
*/
public ConsulResponse> getNodes(QueryOptions queryOptions) {
return extractConsulResponse(api.getNodes(queryOptions.toQuery(),
queryOptions.getTag(), queryOptions.getNodeMeta()));
}
/**
* Asynchronously retrieves the nodes for a given datacenter with {@link com.orbitz.consul.option.QueryOptions}.
*
* GET /v1/catalog/nodes?dc={datacenter}
*
* @param queryOptions The Query Options to use.
* @param callback Callback implemented by callee to handle results.
* {@link com.orbitz.consul.model.health.Node} objects.
*/
public void getNodes(QueryOptions queryOptions, ConsulResponseCallback> callback) {
extractConsulResponse(api.getNodes(queryOptions.toQuery(), queryOptions.getTag(),
queryOptions.getNodeMeta()), callback);
}
/**
* Retrieves all services for a given datacenter.
*
* GET /v1/catalog/services?dc={datacenter}
*
* @return A {@link com.orbitz.consul.model.ConsulResponse} containing a map of service name to list of tags.
*/
public ConsulResponse