This is an automated email from the ASF dual-hosted git repository.
baoyuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-dashboard.git
The following commit(s) were added to refs/heads/master by this push:
new 8390d3dfd feat: support consul discovery (#2731)
8390d3dfd is described below
commit 8390d3dfd53bae19fc31e5dbc8753882e69a8ff3
Author: fabriceli <[email protected]>
AuthorDate: Sat Mar 25 19:59:01 2023 +0800
feat: support consul discovery (#2731)
---
...ate-route-with-service-discovery-upstream.cy.js | 42 ++++++++++++++++++++++
.../Upstream/components/ServiceDiscovery.tsx | 1 +
web/src/components/Upstream/locales/en-US.ts | 1 +
web/src/components/Upstream/locales/tr-TR.ts | 1 +
web/src/components/Upstream/locales/zh-CN.ts | 1 +
web/src/pages/Upstream/typing.d.ts | 2 +-
6 files changed, 47 insertions(+), 1 deletion(-)
diff --git
a/web/cypress/e2e/route/create-route-with-service-discovery-upstream.cy.js
b/web/cypress/e2e/route/create-route-with-service-discovery-upstream.cy.js
old mode 100644
new mode 100755
index 9076cef1d..deb8bbfbd
--- a/web/cypress/e2e/route/create-route-with-service-discovery-upstream.cy.js
+++ b/web/cypress/e2e/route/create-route-with-service-discovery-upstream.cy.js
@@ -41,6 +41,7 @@ context('Create Route with Service Discovery Upstream', () =>
{
upstreamName: 'test_upstream',
routeName: 'test_route',
serviceName: 'test.cluster.local',
+ consul: 'Consul',
};
beforeEach(() => {
@@ -154,6 +155,47 @@ context('Create Route with Service Discovery Upstream', ()
=> {
});
});
+ it('should edit this route with Consul Service Discovery upstream', function
() {
+ cy.visit('/');
+ cy.contains('Route').click();
+ cy.get(selector.nameSelector).type(data.routeName);
+
+ cy.contains('Search').click();
+ cy.contains(data.routeName).siblings().contains('Configure').click();
+
+ cy.get(selector.name).should('value', data.routeName);
+ cy.contains('Next').click({
+ force: true,
+ });
+
+ cy.contains('Nacos').should('exist');
+
+ // set another service discovery
+ cy.get(selector.discovery_type).click({ force: true });
+ cy.get('[title="Consul"] > .ant-select-item-option-content').click();
+ cy.get(selector.service_name).clear().type(`another.${data.serviceName}`);
+
+ cy.contains('Next').click();
+ cy.contains('Next').click();
+ cy.contains('Submit').click();
+ cy.contains(data.submitSuccess).should('be.visible');
+ cy.contains('Goto List').click();
+ cy.url().should('contains', 'routes/list');
+
+ // check if the changes have been saved
+ cy.get(selector.nameSelector).type(data.routeName);
+ cy.contains('Search').click();
+
+ cy.contains(data.routeName).siblings().contains('More').click();
+ cy.contains('View').click();
+ cy.get(selector.drawer).should('be.visible');
+
+ cy.get(selector.monacoScroll).within(() => {
+ cy.contains(`another.${data.serviceName}`).should('exist');
+ cy.contains('consul').should('exist');
+ });
+ });
+
it('should delete this test route and upstream', function () {
cy.visit('/routes/list');
cy.get(selector.nameSelector).type(data.routeName);
diff --git a/web/src/components/Upstream/components/ServiceDiscovery.tsx
b/web/src/components/Upstream/components/ServiceDiscovery.tsx
index 7329dc534..067e52b91 100644
--- a/web/src/components/Upstream/components/ServiceDiscovery.tsx
+++ b/web/src/components/Upstream/components/ServiceDiscovery.tsx
@@ -28,6 +28,7 @@ type Props = {
const discoveryType = {
dns: {},
+ consul: {},
consul_kv: {},
nacos: {
args: ['group_name', 'namespace_id'],
diff --git a/web/src/components/Upstream/locales/en-US.ts
b/web/src/components/Upstream/locales/en-US.ts
index 2b00de759..bdffbfd00 100644
--- a/web/src/components/Upstream/locales/en-US.ts
+++ b/web/src/components/Upstream/locales/en-US.ts
@@ -28,6 +28,7 @@ export default {
'component.upstream.fields.discovery_type.tooltip': 'Discovery Type',
'component.upstream.fields.discovery_type.placeholder': 'Please select the
discovery type',
'component.upstream.fields.discovery_type.type.dns': 'DNS',
+ 'component.upstream.fields.discovery_type.type.consul': 'Consul',
'component.upstream.fields.discovery_type.type.consul_kv': 'Consul KV',
'component.upstream.fields.discovery_type.type.nacos': 'Nacos',
'component.upstream.fields.discovery_type.type.eureka': 'Eureka',
diff --git a/web/src/components/Upstream/locales/tr-TR.ts
b/web/src/components/Upstream/locales/tr-TR.ts
index a7f823786..2307446de 100644
--- a/web/src/components/Upstream/locales/tr-TR.ts
+++ b/web/src/components/Upstream/locales/tr-TR.ts
@@ -28,6 +28,7 @@ export default {
'component.upstream.fields.discovery_type.tooltip': 'Keşif Tipi',
'component.upstream.fields.discovery_type.placeholder': 'Keşif tipini
seçiniz',
'component.upstream.fields.discovery_type.type.dns': 'DNS',
+ 'component.upstream.fields.discovery_type.type.consul': 'Consul',
'component.upstream.fields.discovery_type.type.consul_kv': 'Consul KV',
'component.upstream.fields.discovery_type.type.nacos': 'Nacos',
'component.upstream.fields.discovery_type.type.eureka': 'Eureka',
diff --git a/web/src/components/Upstream/locales/zh-CN.ts
b/web/src/components/Upstream/locales/zh-CN.ts
index bcc38f118..b26d15527 100644
--- a/web/src/components/Upstream/locales/zh-CN.ts
+++ b/web/src/components/Upstream/locales/zh-CN.ts
@@ -28,6 +28,7 @@ export default {
'component.upstream.fields.discovery_type.tooltip': '服务发现类型',
'component.upstream.fields.discovery_type.placeholder': '请选择服务发现类型',
'component.upstream.fields.discovery_type.type.dns': 'DNS',
+ 'component.upstream.fields.discovery_type.type.consul': 'Consul',
'component.upstream.fields.discovery_type.type.consul_kv': 'Consul KV',
'component.upstream.fields.discovery_type.type.nacos': 'Nacos',
'component.upstream.fields.discovery_type.type.eureka': 'Eureka',
diff --git a/web/src/pages/Upstream/typing.d.ts
b/web/src/pages/Upstream/typing.d.ts
index 5c73cc70d..df6df9099 100644
--- a/web/src/pages/Upstream/typing.d.ts
+++ b/web/src/pages/Upstream/typing.d.ts
@@ -17,7 +17,7 @@
declare namespace UpstreamModule {
type Node = Record<string, number | string>;
type Type = 'roundrobin' | 'chash' | 'ewma';
- type DiscoveryType = 'dns' | 'consul_kv' | 'nacos' | 'eureka';
+ type DiscoveryType = 'dns' | 'consul' | 'consul_kv' | 'nacos' | 'eureka';
type DiscoveryArgs = {
group_name?: string;
namespace_id?: string;