You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by wu...@apache.org on 2018/12/18 06:30:11 UTC
[servicecomb-java-chassis] 01/02: [SCB-1073] InstanceCacheChecker
should ignore StaticMicroserviceVersions
This is an automated email from the ASF dual-hosted git repository.
wujimin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit c967d93077648912827e62652de2ac33e8485f01
Author: yaohaishi <ya...@huawei.com>
AuthorDate: Tue Dec 11 11:02:24 2018 +0800
[SCB-1073] InstanceCacheChecker should ignore StaticMicroserviceVersions
---
.../diagnosis/instance/InstanceCacheChecker.java | 9 +++----
.../instance/TestInstanceCacheChecker.java | 31 ++++++++++++++++++++++
2 files changed, 35 insertions(+), 5 deletions(-)
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheChecker.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheChecker.java
index 28fb4b6..ec27cb0 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheChecker.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheChecker.java
@@ -28,6 +28,7 @@ import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
import org.apache.servicecomb.serviceregistry.consumer.AppManager;
import org.apache.servicecomb.serviceregistry.consumer.MicroserviceManager;
import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
+import org.apache.servicecomb.serviceregistry.consumer.StaticMicroserviceVersions;
import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
import org.apache.servicecomb.serviceregistry.diagnosis.Status;
import org.slf4j.Logger;
@@ -55,6 +56,9 @@ public class InstanceCacheChecker {
for (MicroserviceManager microserviceManager : appManager.getApps().values()) {
for (MicroserviceVersions microserviceVersions : microserviceManager.getVersionsByName().values()) {
+ if (microserviceVersions instanceof StaticMicroserviceVersions) {
+ continue;
+ }
InstanceCacheResult instanceCacheResult = check(microserviceVersions);
addInstanceCacheResult(instanceCacheResult);
}
@@ -103,11 +107,6 @@ public class InstanceCacheChecker {
// compare all instances
List<MicroserviceInstance> remoteInstances = microserviceInstances.getInstancesResponse().getInstances();
-// if (RandomUtils.nextInt(0, 2) == 0) {
-// MicroserviceInstance microserviceInstance = new MicroserviceInstance();
-// microserviceInstance.setInstanceId("abc");
-// remoteInstances.add(microserviceInstance);
-// }
remoteInstances.sort(Comparator.comparing(MicroserviceInstance::getInstanceId));
String local = Json.encode(microserviceVersions.getPulledInstances());
String remote = Json.encode(remoteInstances);
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheChecker.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheChecker.java
index c84cc3e..b5f4a68 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheChecker.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheChecker.java
@@ -26,7 +26,9 @@ import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
import org.apache.servicecomb.serviceregistry.api.response.FindInstancesResponse;
import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
+import org.apache.servicecomb.serviceregistry.consumer.MicroserviceManager;
import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
+import org.apache.servicecomb.serviceregistry.consumer.StaticMicroserviceVersions;
import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
import org.apache.servicecomb.serviceregistry.diagnosis.Status;
import org.apache.servicecomb.serviceregistry.registry.ServiceRegistryFactory;
@@ -239,4 +241,33 @@ public class TestInstanceCacheChecker {
Assert.assertEquals(Json.encode(expectedSummary), Json.encode(instanceCacheSummary));
Assert.assertNull(microserviceVersions.getRevision());
}
+
+ @Test
+ public void check_StaticMicroservice() {
+ Holder<MicroserviceInstances> findHolder = new Holder<>(new MicroserviceInstances());
+
+ new MockUp<RegistryUtils>() {
+ @Mock
+ MicroserviceInstances findServiceInstances(String appId, String serviceName,
+ String versionRule, String revision) {
+ return findHolder.value;
+ }
+ };
+
+ MicroserviceManager microserviceManager = serviceRegistry.getAppManager()
+ .getOrCreateMicroserviceManager(RegistryUtils.getAppId());
+ microserviceManager.getVersionsByName().put(microserviceName,
+ new StaticMicroserviceVersions(serviceRegistry.getAppManager(), RegistryUtils.getAppId(), microserviceName,
+ ThirdPartyServiceForUT.class));
+
+ InstanceCacheSummary instanceCacheSummary = checker.check();
+
+ expectedSummary.setStatus(Status.NORMAL);
+
+ Assert.assertEquals(Json.encode(expectedSummary), Json.encode(instanceCacheSummary));
+ }
+
+ private interface ThirdPartyServiceForUT {
+ String sayHello(String name);
+ }
}