Skip to content

Commit ead4a1d

Browse files
committed
move shared logic to helper method
1 parent 62768b2 commit ead4a1d

File tree

2 files changed

+29
-21
lines changed

2 files changed

+29
-21
lines changed

gateway-ha/src/main/java/io/trino/gateway/ha/resource/GatewayResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public Response activateBackend(@PathParam("name") String name)
8686
this.gatewayBackendManager.activateBackend(name);
8787
}
8888
catch (Exception e) {
89-
log.error(e);
89+
log.error(e, e.getMessage());
9090
return throwError(e);
9191
}
9292
return Response.ok().build();

gateway-ha/src/main/java/io/trino/gateway/ha/router/HaGatewayManager.java

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@
2222

2323
import java.util.ArrayList;
2424
import java.util.List;
25-
import java.util.Objects;
2625
import java.util.Optional;
2726

27+
import static java.lang.String.format;
2828
import static java.util.Objects.requireNonNull;
2929

3030
public class HaGatewayManager
@@ -83,24 +83,37 @@ public Optional<ProxyBackendConfiguration> getBackendByName(String name)
8383
@Override
8484
public void deactivateBackend(String backendName)
8585
{
86-
GatewayBackend model = dao.findFirstByName(backendName);
87-
if (model != null) {
88-
Boolean prevStatus = model.active();
89-
dao.deactivate(backendName);
90-
log.info("Backend cluster %s has been deactivated (previous status: active=%s).",
91-
backendName, prevStatus);
92-
}
86+
updateClusterActivationStatus(backendName, false, () -> dao.deactivate(backendName));
9387
}
9488

9589
@Override
9690
public void activateBackend(String backendName)
9791
{
98-
GatewayBackend model = dao.findFirstByName(backendName);
99-
if (model != null) {
100-
Boolean prevStatus = model.active();
101-
dao.activate(backendName);
102-
log.info("Backend cluster %s has been activated (previous status: active=%s).",
103-
backendName, prevStatus);
92+
updateClusterActivationStatus(backendName, true, () -> dao.activate(backendName));
93+
}
94+
95+
private void updateClusterActivationStatus(String clusterName, boolean newStatus, Runnable action)
96+
{
97+
GatewayBackend model = dao.findFirstByName(clusterName);
98+
if (model == null) {
99+
throw new IllegalStateException(format("No cluster found with name: %s, could not (de)activate", clusterName));
100+
}
101+
102+
boolean prevStatus = model.active();
103+
try {
104+
action.run();
105+
logActivationStatusChange(clusterName, newStatus, prevStatus);
106+
}
107+
catch (Exception e) {
108+
throw e;
109+
}
110+
}
111+
112+
private void logActivationStatusChange(String clusterName, boolean newStatus, boolean prevStatus)
113+
{
114+
if (prevStatus != newStatus) {
115+
log.info("Backend cluster %s activation status set to active=%s (previous status: active=%s).",
116+
clusterName, newStatus, prevStatus);
104117
}
105118
}
106119

@@ -123,13 +136,8 @@ public ProxyBackendConfiguration updateBackend(ProxyBackendConfiguration backend
123136
dao.create(backend.getName(), backend.getRoutingGroup(), backendProxyTo, backendExternalUrl, backend.isActive());
124137
}
125138
else {
126-
Boolean prevStatus = model.active();
127139
dao.update(backend.getName(), backend.getRoutingGroup(), backendProxyTo, backendExternalUrl, backend.isActive());
128-
Boolean currStatus = backend.isActive();
129-
if (!Objects.equals(prevStatus, currStatus)) {
130-
log.info("Backend cluster %s activation status changed to active=%s (previous status: active=%s).",
131-
backend.getName(), currStatus, prevStatus);
132-
}
140+
logActivationStatusChange(backend.getName(), backend.isActive(), model.active());
133141
}
134142
return backend;
135143
}

0 commit comments

Comments
 (0)