Skip to content

Commit

Permalink
chore: refactor static use of MonitorRpcClient
Browse files Browse the repository at this point in the history
Refs: XRDDEV-2839
  • Loading branch information
justasnortal committed Feb 24, 2025
1 parent b645b78 commit cea2088
Show file tree
Hide file tree
Showing 12 changed files with 46 additions and 204 deletions.
1 change: 1 addition & 0 deletions src/service/proxy/proxy-core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ dependencies {
testFixturesImplementation(project(":common:common-jetty"))
testFixturesImplementation(project(":common:common-messagelog"))
testFixturesImplementation(project(":service:op-monitor:op-monitor-api"))
testFixturesImplementation(project(":service:monitor:monitor-rpc-client"))
testFixturesImplementation(testFixtures(project(":common:common-properties")))
testFixturesImplementation(testFixtures(project(":lib:keyconf-impl")))
testFixturesImplementation(testFixtures(project(":lib:serverconf-impl")))
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@
import org.niis.xroad.globalconf.GlobalConfProvider;
import org.niis.xroad.monitor.rpc.MonitorRpcClient;
import org.niis.xroad.opmonitor.api.OpMonitoringData;
import org.niis.xroad.proxy.core.addon.proxymonitor.ProxyMonitor;
import org.niis.xroad.proxy.core.addon.proxymonitor.util.MetricTypes;
import org.niis.xroad.proxy.core.protocol.ProxyMessage;
import org.niis.xroad.proxy.core.serverproxy.AbstractServiceHandler;
Expand Down Expand Up @@ -83,9 +82,12 @@ public class ProxyMonitorServiceHandlerImpl extends AbstractServiceHandler {
new ByteArrayOutputStream();

private SoapMessageEncoder responseEncoder;
private final MonitorRpcClient monitorRpcClient;

public ProxyMonitorServiceHandlerImpl(ServerConfProvider serverConfProvider, GlobalConfProvider globalConfProvider) {
public ProxyMonitorServiceHandlerImpl(ServerConfProvider serverConfProvider, GlobalConfProvider globalConfProvider,
MonitorRpcClient monitorClient) {
super(serverConfProvider, globalConfProvider);
this.monitorRpcClient = monitorClient;
}

@Override
Expand Down Expand Up @@ -131,8 +133,6 @@ public void startHandling(RequestWrapper servletRequest, ProxyMessage proxyReque
//mock implementation
responseEncoder = new SimpleSoapEncoder(responseOut);

final MonitorRpcClient client = ProxyMonitor.getClient();

final GetSecurityServerMetricsResponse metricsResponse = new GetSecurityServerMetricsResponse();
final MetricSetType root = new MetricSetType();
root.setName(serverConfProvider.getIdentifier().toString());
Expand All @@ -143,9 +143,7 @@ public void startHandling(RequestWrapper servletRequest, ProxyMessage proxyReque
version.setValue(Version.XROAD_VERSION);
root.getMetrics().add(version);

if (client != null) {
root.getMetrics().add(MetricTypes.of(client.getMetrics(getMetricNames(proxyRequestMessage), isOwner())));
}
root.getMetrics().add(MetricTypes.of(monitorRpcClient.getMetrics(getMetricNames(proxyRequestMessage), isOwner())));

SoapMessageImpl result = createResponse(requestMessage.getSoap(), metricsResponse);
responseEncoder.soap(result, Collections.emptyMap());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,36 +26,20 @@
package org.niis.xroad.proxy.core.configuration;

import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.inject.Disposes;
import org.niis.xroad.monitor.rpc.MonitorRpcClient;
import org.niis.xroad.proxy.core.ProxyProperties;
import org.niis.xroad.proxy.core.addon.BindableServiceRegistry;
import org.niis.xroad.proxy.core.addon.proxymonitor.ProxyMonitor;
import org.niis.xroad.proxy.core.addon.proxymonitor.util.ProxyMonitorService;

public class ProxyAddonConfig {

@ApplicationScoped
static class ProxyMonitorInitializer {
private ProxyMonitor proxyMonitor;
public BindableServiceRegistry bindableServiceRegistry(ProxyProperties.ProxyAddonProperties addonProperties) {
BindableServiceRegistry bindableServiceRegistry = new BindableServiceRegistry();

@ApplicationScoped
public BindableServiceRegistry bindableServiceRegistry(ProxyProperties.ProxyAddonProperties addonProperties,
MonitorRpcClient monitorRpcClient) {
BindableServiceRegistry bindableServiceRegistry = new BindableServiceRegistry();

if (addonProperties.proxyMonitor().enabled()) {
proxyMonitor = new ProxyMonitor();
proxyMonitor.init(bindableServiceRegistry, monitorRpcClient);
}

return bindableServiceRegistry;
}

public void dispose(@Disposes BindableServiceRegistry bindableServiceRegistry) throws Exception {
if (proxyMonitor != null) {
proxyMonitor.shutdown();
}
if (addonProperties.proxyMonitor().enabled()) {
bindableServiceRegistry.register(new ProxyMonitorService());
}

return bindableServiceRegistry;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import jakarta.enterprise.context.ApplicationScoped;
import lombok.RequiredArgsConstructor;
import org.niis.xroad.globalconf.GlobalConfProvider;
import org.niis.xroad.monitor.rpc.MonitorRpcClient;
import org.niis.xroad.opmonitor.api.OpMonitorCommonProperties;
import org.niis.xroad.proxy.core.ProxyProperties;
import org.niis.xroad.proxy.core.addon.metaservice.serverproxy.MetadataServiceHandlerImpl;
Expand All @@ -44,6 +45,7 @@
public class ServiceHandlerLoader {
private final ServerConfProvider serverConfProvider;
private final GlobalConfProvider globalConfProvider;
private final MonitorRpcClient monitorRpcClient;
private final ProxyProperties.ProxyAddonProperties addonProperties;
private final OpMonitorCommonProperties opMonitorCommonProperties;

Expand All @@ -56,7 +58,7 @@ public Collection<ServiceHandler> loadSoapServiceHandlers() {
handlers.add(new OpMonitoringServiceHandlerImpl(serverConfProvider, globalConfProvider, opMonitorCommonProperties));
}
if (addonProperties.proxyMonitor().enabled()) {
handlers.add(new ProxyMonitorServiceHandlerImpl(serverConfProvider, globalConfProvider));
handlers.add(new ProxyMonitorServiceHandlerImpl(serverConfProvider, globalConfProvider, monitorRpcClient));
}
return handlers;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
import org.niis.xroad.common.properties.ConfigUtils;
import org.niis.xroad.globalconf.impl.cert.CertHelper;
import org.niis.xroad.keyconf.KeyConfProvider;
import org.niis.xroad.monitor.rpc.MonitorRpcClient;
import org.niis.xroad.opmonitor.api.OpMonitorCommonProperties;
import org.niis.xroad.proxy.core.antidos.AntiDosConfiguration;
import org.niis.xroad.proxy.core.clientproxy.AuthTrustVerifier;
Expand Down Expand Up @@ -170,7 +171,7 @@ static void startServices(ProxyProperties proxyProperties) throws Exception {

OpMonitorCommonProperties opMonitorCommonProperties = ConfigUtils.defaultConfiguration(OpMonitorCommonProperties.class);
ServiceHandlerLoader serviceHandlerLoader = new ServiceHandlerLoader(TEST_SERVER_CONF, TEST_GLOBAL_CONF,
proxyProperties.addOn(), opMonitorCommonProperties);
mock(MonitorRpcClient.class), proxyProperties.addOn(), opMonitorCommonProperties);
serverProxy = new ServerProxy(proxyProperties.server(), mock(AntiDosConfiguration.class), commonBeanProxy, serviceHandlerLoader,
opMonitorCommonProperties);
serverProxy.init();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@
import org.niis.xroad.monitor.rpc.EnvMonitorRpcChannelProperties;
import org.niis.xroad.monitor.rpc.MonitorRpcClient;
import org.niis.xroad.proxy.core.ProxyProperties;
import org.niis.xroad.proxy.core.addon.BindableServiceRegistry;
import org.niis.xroad.proxy.core.test.MessageTestCase;
import org.niis.xroad.proxy.core.test.ProxyTestSuiteHelper;
import org.niis.xroad.proxy.core.test.TestContext;
Expand All @@ -68,6 +67,8 @@ public class ProxyMonitorMetaserviceTest {
EnvMonitorRpcChannelProperties.class,
Map.of(EnvMonitorRpcChannelProperties.PREFIX + ".port", String.valueOf(findRandomPort())));

private static MonitorRpcClient monitorRpcClient;

@BeforeAll
static void beforeAll() throws Exception {
TimeUtils.setClock(Clock.fixed(Instant.parse("2020-01-01T00:00:00Z"), ZoneOffset.UTC));
Expand All @@ -83,10 +84,9 @@ static void beforeAll() throws Exception {
ProxyTestSuiteHelper.proxyProperties = ConfigUtils.initConfiguration(ProxyProperties.class, proxyProps);

ProxyTestSuiteHelper.startTestServices();
MonitorRpcClient monitorRpcClient = new MonitorRpcClient(new RpcChannelFactory(new InsecureRpcCredentialsConfigurer()),
monitorRpcClient = new MonitorRpcClient(new RpcChannelFactory(new InsecureRpcCredentialsConfigurer()),
envMonitorRpcChannelProperties);
monitorRpcClient.init();
new ProxyMonitor().init(new BindableServiceRegistry(), monitorRpcClient);
}

@AfterAll
Expand All @@ -102,7 +102,7 @@ Stream<DynamicTest> proxyMonitorTests() throws Exception {
assertThat(testCasesToRun.size()).isGreaterThan(0);

System.setProperty(SystemProperties.PROXY_SSL_SUPPORT, "false");
ctx = new TestContext(ProxyTestSuiteHelper.proxyProperties);
ctx = new TestContext(ProxyTestSuiteHelper.proxyProperties, true, monitorRpcClient);

return testCasesToRun.stream()
.map(testCase -> dynamicTest(testCase.getId(),
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,13 @@
import org.junit.Rule;
import org.junit.Test;
import org.junit.contrib.java.lang.system.ProvideSystemProperty;
import org.junit.rules.ExpectedException;
import org.niis.xroad.globalconf.GlobalConfProvider;
import org.niis.xroad.monitor.common.Metrics;
import org.niis.xroad.monitor.common.MetricsGroup;
import org.niis.xroad.monitor.common.SingleMetrics;
import org.niis.xroad.monitor.common.SystemMetricsResp;
import org.niis.xroad.monitor.rpc.MonitorRpcClient;
import org.niis.xroad.opmonitor.api.OpMonitoringData;
import org.niis.xroad.proxy.core.addon.proxymonitor.RestoreMonitorClientAfterTest;
import org.niis.xroad.proxy.core.protocol.ProxyMessage;
import org.niis.xroad.proxy.core.test.TestSuiteGlobalConf;
import org.niis.xroad.proxy.core.test.TestSuiteServerConf;
Expand Down Expand Up @@ -90,7 +88,6 @@
*/
public class ProxyMonitorServiceHandlerMetricsTest {


private static final String EXPECTED_XR_INSTANCE = "EE";
private static final ClientId.Conf DEFAULT_OWNER_CLIENT = ClientId.Conf.create(EXPECTED_XR_INSTANCE, "GOV",
"1234TEST_CLIENT");
Expand All @@ -104,9 +101,6 @@ public class ProxyMonitorServiceHandlerMetricsTest {
private static Unmarshaller unmarshaller;
private static MessageFactory messageFactory;

@Rule
public ExpectedException thrown = ExpectedException.none();

@Rule
public final ProvideSystemProperty hibernatePropertiesProperty
= new ProvideSystemProperty(SystemProperties.DATABASE_PROPERTIES,
Expand All @@ -117,14 +111,13 @@ public class ProxyMonitorServiceHandlerMetricsTest {
= new ProvideSystemProperty(SystemProperties.CONFIGURATION_PATH,
"src/test/resources/");

@Rule
public final RestoreMonitorClientAfterTest monitorClientRestoreRule = new RestoreMonitorClientAfterTest();

private ServerConfProvider serverConfProvider;
private GlobalConfProvider globalConfProvider;
private RequestWrapper mockRequest;
private ProxyMessage mockProxyMessage;

private final MonitorRpcClient mockMonitorClient = mock(MonitorRpcClient.class);

/**
* Init class-wide test instances
*/
Expand Down Expand Up @@ -158,7 +151,8 @@ public SecurityServerId.Conf getIdentifier() {
public void startHandingShouldProduceAllMetrics() throws Exception {

// setup
ProxyMonitorServiceHandlerImpl handlerToTest = new ProxyMonitorServiceHandlerImpl(serverConfProvider, globalConfProvider);
ProxyMonitorServiceHandlerImpl handlerToTest = new ProxyMonitorServiceHandlerImpl(serverConfProvider, globalConfProvider,
mockMonitorClient);

final SoapMessageImpl soapMessage = build(DEFAULT_OWNER_CLIENT, MONITOR_SERVICE_ID,
"testUser", randomUUID().toString());
Expand All @@ -183,11 +177,8 @@ public void startHandingShouldProduceAllMetrics() throws Exception {
.build()).build())
.build()).build();

MonitorRpcClient mockMonitorClient = mock(MonitorRpcClient.class);
when(mockMonitorClient.getMetrics(anyList(), anyBoolean())).thenReturn(resp.getMetrics());

RestoreMonitorClientAfterTest.setMonitorClient(mockMonitorClient);

// execution
handlerToTest.startHandling(mockRequest, mockProxyMessage, mock(HttpClient.class),
mock(OpMonitoringData.class));
Expand Down Expand Up @@ -234,8 +225,8 @@ public void startHandingShouldProduceAllMetrics() throws Exception {
public void startHandingShouldProduceRequestedMetrics() throws Exception {

// setup
ProxyMonitorServiceHandlerImpl handlerToTest = new ProxyMonitorServiceHandlerImpl(serverConfProvider, globalConfProvider);

ProxyMonitorServiceHandlerImpl handlerToTest = new ProxyMonitorServiceHandlerImpl(serverConfProvider, globalConfProvider,
mockMonitorClient);

final SoapMessageImpl soapMessage = build(
false,
Expand Down Expand Up @@ -266,12 +257,9 @@ public void startHandingShouldProduceRequestedMetrics() throws Exception {
.build()).build())
.build()).build();

MonitorRpcClient mockMonitorClient = mock(MonitorRpcClient.class);
when(mockMonitorClient.getMetrics(anyList(),
anyBoolean())).thenReturn(resp.getMetrics());

RestoreMonitorClientAfterTest.setMonitorClient(mockMonitorClient);

// execution
handlerToTest.startHandling(mockRequest, mockProxyMessage, mock(HttpClient.class),
mock(OpMonitoringData.class));
Expand Down
Loading

0 comments on commit cea2088

Please sign in to comment.