Skip to content
This repository has been archived by the owner on Jul 27, 2023. It is now read-only.

Compatibility with Consul 1.0 #268

Merged
merged 2 commits into from
Nov 1, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/main/java/com/orbitz/consul/AgentClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -605,7 +605,7 @@ Call<Void> register(@Body Registration registration,
@PUT("agent/check/register")
Call<Void> registerCheck(@Body Check check);

@GET("agent/check/deregister/{checkId}")
@PUT("agent/check/deregister/{checkId}")
Call<Void> deregisterCheck(@Path("checkId") String checkId);

@GET("agent/self")
Expand All @@ -623,15 +623,15 @@ Call<Void> register(@Body Registration registration,
@GET("agent/members")
Call<List<Member>> getMembers();

@GET("agent/force-leave")
@PUT("agent/force-leave")
Call<Void> forceLeave();

@GET("agent/check/{state}/{checkId}")
@PUT("agent/check/{state}/{checkId}")
Call<Void> check(@Path("state") String state,
@Path("checkId") String checkId,
@QueryMap Map<String, String> query);

@GET("agent/join/{address}")
@PUT("agent/join/{address}")
Call<Void> join(String address, Map<String, String> query);

@PUT("agent/service/maintenance/{serviceId}")
Expand Down
6 changes: 6 additions & 0 deletions src/main/java/com/orbitz/consul/model/agent/Agent.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import org.immutables.value.Value;

import javax.annotation.Nullable;

@Value.Immutable
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonSerialize(as = ImmutableAgent.class)
Expand All @@ -16,6 +18,10 @@ public abstract class Agent {
@JsonProperty("Config")
public abstract Config getConfig();

@Nullable
@JsonProperty("DebugConfig")
public abstract DebugConfig getDebugConfig();

@JsonProperty("Member")
public abstract Member getMember();

Expand Down
91 changes: 6 additions & 85 deletions src/main/java/com/orbitz/consul/model/agent/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,97 +16,18 @@
@JsonIgnoreProperties(ignoreUnknown = true)
public abstract class Config {

@JsonProperty("Bootstrap")
public abstract boolean getBootstrap();

@JsonProperty("Server")
public abstract boolean getServer();

@JsonProperty("Datacenter")
public abstract String getDatacenter();

@JsonProperty("DataDir")
public abstract String getDataDir();

@JsonProperty("DNSRecursor")
public abstract String dnsRecursor();

@JsonProperty("Domain")
public abstract String getDomain();

@JsonProperty("LogLevel")
public abstract String getLogLevel();

@JsonProperty("NodeName")
public abstract String getNodeName();

@JsonProperty("ClientAddr")
public abstract String getClientAddr();

@JsonProperty("BindAddr")
public abstract String getBindAddr();

@JsonProperty("AdvertiseAddr")
public abstract String getAdvertiseAddr();

@JsonProperty("Ports")
public abstract Ports getPorts();

@JsonProperty("LeaveOnTerm")
public abstract boolean getLeaveOnTerm();

@JsonProperty("SkipLeaveOnInt")
public abstract boolean getSkipLeaveOnInt();

/**
*
* @deprecated GET /v1/agent/self from v0.6.4 does not have this JSON field
*/
@Deprecated
@JsonProperty("StatsiteAddr")
public abstract Optional<String> getStatsiteAddr();
@JsonProperty("Revision")
public abstract String getRevision();

@JsonProperty("Protocol")
public abstract int getProtocol();

@JsonProperty("EnableDebug")
public abstract boolean getEnableDebug();

@JsonProperty("VerifyIncoming")
public abstract boolean getVerifyIncoming();

@JsonProperty("VerifyOutgoing")
public abstract boolean getVerifyOutgoing();

@JsonProperty("CAFile")
public abstract String getCaFile();

@JsonProperty("CertFile")
public abstract String getCertFile();

@JsonProperty("KeyFile")
public abstract String getKeyFile();

@JsonProperty("StartJoin")
@JsonDeserialize(as = ImmutableList.class, contentAs = String.class)
public abstract List<String> getStartJoin();

@JsonProperty("UiDir")
public abstract Optional<String> getUiDir();

@JsonProperty("PidFile")
public abstract String getPidFile();

@JsonProperty("EnableSyslog")
public abstract boolean getEnableSyslog();

@JsonProperty("RejoinAfterLeave")
public abstract boolean getRejoinAfterLeave();
@JsonProperty("Server")
public abstract boolean getServer();

/**
* New version of consul has Telemetry field
* TODO: Have to think about back compatibility (I think we shouldn't)
*/
@JsonProperty("Telemetry")
public abstract Optional<Telemetry> getTelemetry();
@JsonProperty("Version")
public abstract String getVersion();
}
89 changes: 89 additions & 0 deletions src/main/java/com/orbitz/consul/model/agent/DebugConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
package com.orbitz.consul.model.agent;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.google.common.base.Optional;
import com.google.common.collect.ImmutableList;
import org.immutables.value.Value;

import java.util.List;

@Value.Immutable
@JsonSerialize(as = ImmutableDebugConfig.class)
@JsonDeserialize(as = ImmutableDebugConfig.class)
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.ALWAYS)
public abstract class DebugConfig {

@JsonProperty("Bootstrap")
public abstract boolean getBootstrap();

@JsonProperty("Datacenter")
public abstract String getDatacenter();

@JsonProperty("DataDir")
public abstract String getDataDir();

@JsonProperty("DNSRecursors")
public abstract List<String> dnsRecursors();

@JsonProperty("DNSDomain")
public abstract String getDnsDomain();

@JsonProperty("LogLevel")
public abstract String getLogLevel();

@JsonProperty("NodeName")
public abstract String getNodeName();

@JsonProperty("ClientAddrs")
public abstract List<String> getClientAddrs();

@JsonProperty("BindAddr")
public abstract String getBindAddr();

@JsonProperty("LeaveOnTerm")
public abstract boolean getLeaveOnTerm();

@JsonProperty("SkipLeaveOnInt")
public abstract boolean getSkipLeaveOnInt();

@JsonProperty("EnableDebug")
public abstract boolean getEnableDebug();

@JsonProperty("VerifyIncoming")
public abstract boolean getVerifyIncoming();

@JsonProperty("VerifyOutgoing")
public abstract boolean getVerifyOutgoing();

@JsonProperty("CAFile")
public abstract String getCaFile();

@JsonProperty("CertFile")
public abstract String getCertFile();

@JsonProperty("KeyFile")
public abstract String getKeyFile();

@JsonProperty("UiDir")
public abstract Optional<String> getUiDir();

@JsonProperty("PidFile")
public abstract String getPidFile();

@JsonProperty("EnableSyslog")
public abstract boolean getEnableSyslog();

@JsonProperty("RejoinAfterLeave")
public abstract boolean getRejoinAfterLeave();

@JsonProperty("AdvertiseAddrLAN")
public abstract String getAdvertiseAddrLAN();

@JsonProperty("AdvertiseAddrWAN")
public abstract String getAdvertiseAddrWAN();
}
6 changes: 4 additions & 2 deletions src/test/java/com/orbitz/consul/AgentTests.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,15 @@ public class AgentTests extends BaseIntegrationTest {
public void shouldRetrieveAgentInformation() throws UnknownHostException {
Agent agent = client.agentClient().getAgent();

org.junit.Assume.assumeTrue(agent.getDebugConfig() != null);

assertNotNull(agent);
assertNotNull(agent.getConfig());
assertNotNull(agent.getConfig().getClientAddr());
assertNotNull(agent.getDebugConfig().getClientAddrs().get(0));

// maybe we should not make any assertion on the actual value of the client address
// as like when we run consul in a docker container we would have "0.0.0.0"
assertThat(agent.getConfig().getClientAddr(), anyOf(is("127.0.0.1"), is("0.0.0.0")));
assertThat(agent.getDebugConfig().getClientAddrs().get(0), anyOf(is("127.0.0.1"), is("0.0.0.0")));
}

@Test
Expand Down
6 changes: 3 additions & 3 deletions src/test/java/com/orbitz/consul/cache/ConsulCacheTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ public void nodeCacheServicePassingTest() throws Exception {
svHealth.start();
svHealth.awaitInitialized(3, TimeUnit.SECONDS);

ServiceHealthKey serviceKey = ServiceHealthKey.of(serviceId, agent.getConfig().getAdvertiseAddr(), 8080);
ServiceHealthKey serviceKey = ServiceHealthKey.of(serviceId, agent.getDebugConfig().getAdvertiseAddrLAN(), 8080);
ServiceHealth health = svHealth.getMap().get(serviceKey);
assertEquals(serviceId, health.getService().getId());

Expand Down Expand Up @@ -109,8 +109,8 @@ public void testServicesAreUniqueByID() throws Exception {
Agent agent = client.agentClient().getAgent();
Thread.sleep(100);

ServiceHealthKey serviceKey1 = ServiceHealthKey.of(serviceId, agent.getConfig().getAdvertiseAddr(), 8080);
ServiceHealthKey serviceKey2 = ServiceHealthKey.of(serviceId2, agent.getConfig().getAdvertiseAddr(), 8080);
ServiceHealthKey serviceKey1 = ServiceHealthKey.of(serviceId, agent.getDebugConfig().getAdvertiseAddrLAN(), 8080);
ServiceHealthKey serviceKey2 = ServiceHealthKey.of(serviceId2, agent.getDebugConfig().getAdvertiseAddrLAN(), 8080);

ImmutableMap<ServiceHealthKey, ServiceHealth> healthMap = svHealth.getMap();
assertEquals(healthMap.size(), 2);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public void shouldConnectWithCustomTimeouts() throws UnknownHostException {
Agent agent = client.agentClient().getAgent();

assertNotNull(agent);
assertEquals("127.0.0.1", agent.getConfig().getClientAddr());
assertEquals("127.0.0.1", agent.getDebugConfig().getClientAddrs().get(0));
}

}