Skip to content

Commit 2e737d2

Browse files
committed
fix:fix ipv6 instance not found bug.
1 parent 4648dbd commit 2e737d2

File tree

3 files changed

+19
-8
lines changed

3 files changed

+19
-8
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@
1313
- [fix: fix loadbalancer metadata type.](https://github.com/Tencent/spring-cloud-tencent/pull/1622)
1414
- [feat:support polaris server nearby backup LB.](https://github.com/Tencent/spring-cloud-tencent/pull/1631)
1515
- fix:fix PolarisContextProperties instantiated twice causing NPE.
16+
- fix:fix ipv6 instance not found bug.

spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/spi/impl/DefaultInstanceMetadataProvider.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@
2525

2626
import com.tencent.cloud.common.spi.InstanceMetadataProvider;
2727
import com.tencent.cloud.common.util.ApplicationContextAwareUtils;
28+
import com.tencent.cloud.common.util.inet.PolarisInetUtils;
29+
import com.tencent.polaris.api.utils.StringUtils;
30+
import com.tencent.polaris.metadata.core.constant.MetadataConstants;
2831

2932
import static com.tencent.cloud.common.constant.MetadataConstant.DefaultMetadata.DEFAULT_METADATA_SOURCE_SERVICE_NAME;
3033
import static com.tencent.cloud.common.constant.MetadataConstant.DefaultMetadata.DEFAULT_METADATA_SOURCE_SERVICE_NAMESPACE;
@@ -48,10 +51,18 @@ public DefaultInstanceMetadataProvider(ApplicationContextAwareUtils applicationC
4851

4952
@Override
5053
public Map<String, String> getMetadata() {
51-
return new HashMap<String, String>() {{
52-
put(DEFAULT_METADATA_SOURCE_SERVICE_NAMESPACE, LOCAL_NAMESPACE);
53-
put(DEFAULT_METADATA_SOURCE_SERVICE_NAME, LOCAL_SERVICE);
54-
}};
54+
Map<String, String> metadata = new HashMap<>();
55+
metadata.put(DEFAULT_METADATA_SOURCE_SERVICE_NAMESPACE, LOCAL_NAMESPACE);
56+
metadata.put(DEFAULT_METADATA_SOURCE_SERVICE_NAME, LOCAL_SERVICE);
57+
String ipv4Address = PolarisInetUtils.getIpString(false);
58+
if (StringUtils.isNotBlank(ipv4Address)) {
59+
metadata.put(MetadataConstants.ADDRESS_IPV4, ipv4Address);
60+
}
61+
String ipv6Address = PolarisInetUtils.getIpString(true);
62+
if (StringUtils.isNotBlank(ipv6Address)) {
63+
metadata.put(MetadataConstants.ADDRESS_IPV6, ipv6Address);
64+
}
65+
return metadata;
5566
}
5667

5768
@Override

spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/StaticMetadataManagerTest.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
@ExtendWith({MockitoExtension.class, SystemStubsExtension.class})
5858
public class StaticMetadataManagerTest {
5959

60+
private static MockedStatic<ApplicationContextAwareUtils> mockedApplicationContextAwareUtils;
6061
/**
6162
* EnvironmentVariablesRule.
6263
*/
@@ -65,8 +66,6 @@ public class StaticMetadataManagerTest {
6566
@Mock
6667
private MetadataLocalProperties metadataLocalProperties;
6768

68-
private static MockedStatic<ApplicationContextAwareUtils> mockedApplicationContextAwareUtils;
69-
7069
@BeforeAll
7170
static void beforeAll() {
7271
mockedApplicationContextAwareUtils = Mockito.mockStatic(ApplicationContextAwareUtils.class);
@@ -137,7 +136,7 @@ public void testCustomSPIMetadata() {
137136
Arrays.asList(new MockedMetadataProvider(), new DefaultInstanceMetadataProvider(null)));
138137

139138
Map<String, String> metadata = metadataManager.getAllCustomMetadata();
140-
assertThat(metadata.size()).isEqualTo(5);
139+
assertThat(metadata.size()).isGreaterThanOrEqualTo(5);
141140
assertThat(metadata.get("k1")).isEqualTo("v1");
142141
assertThat(metadata.get("k2")).isEqualTo("v22");
143142
assertThat(metadata.get("k3")).isEqualTo("v33");
@@ -182,7 +181,7 @@ public void testMergedMetadata() {
182181
Arrays.asList(new MockedMetadataProvider(), new DefaultInstanceMetadataProvider(null)));
183182

184183
Map<String, String> metadata = metadataManager.getMergedStaticMetadata();
185-
assertThat(metadata.size()).isEqualTo(8);
184+
assertThat(metadata.size()).isGreaterThanOrEqualTo(8);
186185
assertThat(metadata.get("k1")).isEqualTo("v1");
187186
assertThat(metadata.get("k2")).isEqualTo("v22");
188187
assertThat(metadata.get("k3")).isEqualTo("v33");

0 commit comments

Comments
 (0)