feat: support traffic gray lane router

pull/1785/head
fishtailfu 3 weeks ago
parent 36e1b89ed9
commit eb90da464a

@ -16,6 +16,7 @@
*/
package com.tencent.cloud.polaris.router.config.properties;
import com.tencent.polaris.plugins.router.lane.BaseLaneMode;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ -28,18 +29,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix = "spring.cloud.polaris.router.lane-router")
public class PolarisLaneRouterProperties {
private boolean enabled = true;
private BaseLaneMode baseLaneMode = BaseLaneMode.ONLY_UNTAGGED_INSTANCE;
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public BaseLaneMode getBaseLaneMode() {
return baseLaneMode;
}
@ -51,8 +42,7 @@ public class PolarisLaneRouterProperties {
@Override
public String toString() {
return "PolarisLaneRouterProperties{" +
"enabled=" + enabled +
", baseLaneMode=" + baseLaneMode +
"baseLaneMode=" + baseLaneMode +
'}';
}
}

@ -50,56 +50,20 @@ public class PolarisLaneRouterPropertiesTest {
public void testDefaultValues() {
contextRunner.run(context -> {
PolarisLaneRouterProperties props = context.getBean(PolarisLaneRouterProperties.class);
assertThat(props.isEnabled()).isTrue();
assertThat(props.getBaseLaneMode()).isEqualTo(BaseLaneMode.ONLY_UNTAGGED_INSTANCE);
});
}
@Test
public void testEnabledPropertyBinding() {
contextRunner
.withPropertyValues("spring.cloud.polaris.router.lane-router.enabled=false")
.run(context -> {
PolarisLaneRouterProperties props = context.getBean(PolarisLaneRouterProperties.class);
assertThat(props.isEnabled()).isFalse();
});
}
@Test
public void testBaseLaneModePropertyBinding() {
contextRunner
.withPropertyValues("spring.cloud.polaris.router.lane-router.base-lane-mode=EXCLUDE_ENABLED_LANE_INSTANCE")
.withPropertyValues("spring.cloud.polaris.router.lane-router.base-lane-mode=" + BaseLaneMode.EXCLUDE_ENABLED_LANE_INSTANCE.name())
.run(context -> {
PolarisLaneRouterProperties props = context.getBean(PolarisLaneRouterProperties.class);
assertThat(props.getBaseLaneMode()).isEqualTo(BaseLaneMode.EXCLUDE_ENABLED_LANE_INSTANCE);
});
}
@Test
public void testAllPropertiesBinding() {
contextRunner
.withPropertyValues(
"spring.cloud.polaris.router.lane-router.enabled=false",
"spring.cloud.polaris.router.lane-router.base-lane-mode=EXCLUDE_ENABLED_LANE_INSTANCE"
)
.run(context -> {
PolarisLaneRouterProperties props = context.getBean(PolarisLaneRouterProperties.class);
assertThat(props.isEnabled()).isFalse();
assertThat(props.getBaseLaneMode()).isEqualTo(BaseLaneMode.EXCLUDE_ENABLED_LANE_INSTANCE);
});
}
@Test
public void testIsEnabled() {
assertThat(properties.isEnabled()).isEqualTo(true);
}
@Test
public void testSetEnabled() {
properties.setEnabled(false);
assertThat(properties.isEnabled()).isEqualTo(false);
}
@Test
public void testGetBaseLaneMode() {
assertThat(properties.getBaseLaneMode()).isEqualTo(BaseLaneMode.ONLY_UNTAGGED_INSTANCE);

@ -23,6 +23,7 @@ import java.util.Map;
import com.tencent.cloud.common.tsf.TsfContextUtils;
import com.tencent.polaris.api.utils.IPAddressUtils;
import com.tencent.polaris.api.utils.StringUtils;
import com.tencent.polaris.plugins.router.lane.BaseLaneMode;
import org.apache.commons.logging.Log;
import org.springframework.boot.SpringApplication;
@ -185,7 +186,7 @@ public final class TsfCoreEnvironmentPostProcessor implements EnvironmentPostPro
defaultProperties.put("spring.cloud.polaris.lane.router.enabled",
environment.getProperty("spring.cloud.polaris.lane.router.enabled", "true"));
defaultProperties.put("spring.cloud.polaris.lane.router.baseLaneMode",
environment.getProperty("spring.cloud.polaris.lane.router.baseLaneMode", "EXCLUDE_ENABLED_LANE_INSTANCE"));
environment.getProperty("spring.cloud.polaris.lane.router.baseLaneMode", BaseLaneMode.EXCLUDE_ENABLED_LANE_INSTANCE.name()));
}
}

Loading…
Cancel
Save