Skip to content

Commit 2fb17c8

Browse files
committed
优化server context-path, gray infos
1 parent 7f5d847 commit 2fb17c8

File tree

10 files changed

+72
-8
lines changed

10 files changed

+72
-8
lines changed

spring-cloud-gray-core/pom.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,11 @@
1616
<groupId>org.projectlombok</groupId>
1717
<artifactId>lombok</artifactId>
1818
</dependency>
19-
19+
<dependency>
20+
<groupId>com.fasterxml.jackson.core</groupId>
21+
<artifactId>jackson-databind</artifactId>
22+
<optional>true</optional>
23+
</dependency>
2024
</dependencies>
2125

2226
<build>

spring-cloud-gray-core/src/main/java/cn/springcloud/gray/model/GrayInstance.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package cn.springcloud.gray.model;
22

3+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
34
import lombok.Getter;
45
import lombok.Setter;
56
import lombok.ToString;
@@ -15,6 +16,7 @@
1516
@ToString
1617
@Setter
1718
@Getter
19+
@JsonIgnoreProperties({"gray"})
1820
public class GrayInstance implements Serializable {
1921

2022
private static final long serialVersionUID = 1604426811546120884L;

spring-cloud-gray-plugins/spring-cloud-gray-plugin-webmvc/src/main/java/cn/springcloud/gray/client/config/GrayClientWebAutoConfiguration.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33

44
import cn.springcloud.gray.GrayManager;
55
import cn.springcloud.gray.web.resources.DiscoveryInstanceResource;
6+
import cn.springcloud.gray.web.resources.GrayListResource;
67
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
78
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
89
import org.springframework.context.annotation.Bean;
9-
import org.springframework.context.annotation.ComponentScan;
1010
import org.springframework.context.annotation.Configuration;
1111

1212
@Configuration
@@ -20,4 +20,9 @@ public DiscoveryInstanceResource discoveryInstanceResource() {
2020
return new DiscoveryInstanceResource();
2121
}
2222

23+
@Bean
24+
public GrayListResource grayListResource() {
25+
return new GrayListResource();
26+
}
27+
2328
}

spring-cloud-gray-plugins/spring-cloud-gray-plugin-webmvc/src/main/java/cn/springcloud/gray/web/resources/GrayListResource.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public class GrayListResource {
3737
@GetMapping("/service/allInfos")
3838
public ApiRes<Map<String, Collection<GrayInstance>>> getAllGrayServiceInfos() {
3939
return ApiRes.<Map<String, Collection<GrayInstance>>>builder()
40+
.code(ApiRes.CODE_SUCCESS)
4041
.data(grayManager.getMapByAllGrayServices())
4142
.build();
4243
}
@@ -49,6 +50,7 @@ public ApiRes<Map<String, Collection<GrayInstance>>> getAllGrayServiceInfos() {
4950
@GetMapping("/track/allDefinitions")
5051
public ApiRes<Collection<GrayTrackDefinition>> getAllGrayTracks() {
5152
return ApiRes.<Collection<GrayTrackDefinition>>builder()
53+
.code(ApiRes.CODE_SUCCESS)
5254
.data(grayTrackHolder.getTrackDefinitions())
5355
.build();
5456
}

spring-cloud-gray-server/src/main/java/cn/springcloud/gray/server/ClientRemoteConfiguration.java renamed to spring-cloud-gray-server/src/main/java/cn/springcloud/gray/server/configuration/ClientRemoteConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package cn.springcloud.gray.server;
1+
package cn.springcloud.gray.server.configuration;
22

33
import cn.springcloud.gray.server.discovery.ServiceDiscovery;
44
import cn.springcloud.gray.server.module.client.ClientRemoteModule;

spring-cloud-gray-server/src/main/java/cn/springcloud/gray/server/resources/ExceptionTranslator.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import cn.springcloud.gray.api.ApiRes;
44
import cn.springcloud.gray.exceptions.NotFoundException;
5+
import lombok.extern.slf4j.Slf4j;
56
import org.apache.commons.lang3.StringUtils;
67
import org.springframework.http.HttpStatus;
78
import org.springframework.web.bind.annotation.ControllerAdvice;
@@ -14,24 +15,27 @@
1415
* @date 2019-11-25 21:49
1516
*/
1617
@ControllerAdvice
18+
@Slf4j
1719
public class ExceptionTranslator {
1820

1921

2022
@ExceptionHandler(NotFoundException.class)
2123
@ResponseStatus(HttpStatus.NOT_FOUND)
2224
@ResponseBody
2325
public ApiRes<Void> processNotFoundException(NotFoundException ex) {
26+
log.error("{}", ex.getMessage(), ex);
2427
return ApiRes.<Void>builder()
2528
.code(ApiRes.CODE_NOT_FOUND)
2629
.message(StringUtils.defaultIfEmpty(ex.getMessage(), HttpStatus.NOT_FOUND.getReasonPhrase()))
2730
.build();
2831
}
2932

3033

31-
@ExceptionHandler(NotFoundException.class)
34+
@ExceptionHandler(IllegalArgumentException.class)
3235
@ResponseStatus(HttpStatus.BAD_REQUEST)
3336
@ResponseBody
3437
public ApiRes<Void> processIllegalArgumentException(IllegalArgumentException ex) {
38+
log.error("{}", ex.getMessage(), ex);
3539
return ApiRes.<Void>builder()
3640
.code(String.valueOf(HttpStatus.BAD_REQUEST))
3741
.message(StringUtils.defaultIfEmpty(ex.getMessage(), "instance host or port is empty"))
@@ -43,6 +47,7 @@ public ApiRes<Void> processIllegalArgumentException(IllegalArgumentException ex)
4347
@ResponseStatus(HttpStatus.BAD_REQUEST)
4448
@ResponseBody
4549
public ApiRes<Void> processException(Exception ex) {
50+
log.error("{}", ex.getMessage(), ex);
4651
return ApiRes.<Void>builder()
4752
.code(String.valueOf(HttpStatus.BAD_REQUEST))
4853
.message(StringUtils.defaultIfEmpty(ex.getMessage(), "error"))

spring-cloud-gray-server/src/main/java/cn/springcloud/gray/server/resources/rest/ClientGrayListResource.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.springframework.web.bind.annotation.GetMapping;
1212
import org.springframework.web.bind.annotation.RequestMapping;
1313
import org.springframework.web.bind.annotation.RequestParam;
14+
import org.springframework.web.bind.annotation.RestController;
1415
import org.springframework.web.client.RestTemplate;
1516

1617
import java.util.List;
@@ -20,6 +21,7 @@
2021
* @author saleson
2122
* @date 2019-11-24 14:40
2223
*/
24+
@RestController
2325
@RequestMapping("/gray/client/grayList")
2426
public class ClientGrayListResource {
2527

spring-cloud-gray-webui/src/views/gray-instance/complex-table.vue

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
</el-dropdown-menu>
105105
</el-dropdown>
106106
<el-dropdown trigger="click">
107-
<el-button size="mini" type="info" style="width:80px">
107+
<el-button size="mini" type="info" style="width:80px" class="list-button">
108108
灰度信息
109109
<i class="el-icon-arrow-down" />
110110
</el-button>
@@ -158,7 +158,7 @@
158158
</el-dialog>
159159

160160
<el-dialog :title="grayInfo.type" :visible.sync="grayInfo.dialogVisible" :loading="grayInfo.loading">
161-
{{ grayInfo.content }}
161+
<pre>{{ grayInfo.content }}</pre>
162162
<div slot="footer" class="dialog-footer">
163163
<el-button @click="grayInfo.dialogVisible = false">
164164
Cancel
@@ -441,6 +441,7 @@ export default {
441441
this.grayInfo.instanceId = row.instanceId
442442
this.grayInfo.type = type
443443
this.grayInfo.dialogVisible = true
444+
this.grayInfo.content = ''
444445
this.refershGrayInfos()
445446
},
446447
refershGrayInfos() {

spring-cloud-gray-webui/src/views/gray-instance/discovery-instances.vue

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
</el-dropdown-menu>
6969
</el-dropdown>
7070
<el-dropdown trigger="click">
71-
<el-button size="mini" type="info" style="width:80px">
71+
<el-button size="mini" type="info" style="width:80px" class="list-button">
7272
灰度信息
7373
<i class="el-icon-arrow-down" />
7474
</el-button>
@@ -80,12 +80,26 @@
8080
</template>
8181
</el-table-column>
8282
</el-table>
83+
84+
<el-dialog :title="grayInfo.type" :visible.sync="grayInfo.dialogVisible" :loading="grayInfo.loading">
85+
<pre>{{ grayInfo.content }}</pre>
86+
<div slot="footer" class="dialog-footer">
87+
<el-button @click="grayInfo.dialogVisible = false">
88+
Cancel
89+
</el-button>
90+
<el-button type="primary" @click="refershGrayInfos()">
91+
Refersh
92+
</el-button>
93+
</div>
94+
</el-dialog>
95+
8396
</div>
8497
</template>
8598

8699
<script>
87100
import { fetchList, createInstance, tryChangeInstanceStatus } from '@/api/discovery-instance'
88101
import waves from '@/directive/waves' // waves directive
102+
import { getServiceAllInfos, getAllDefinitions } from '@/api/gray-client'
89103
import { parseTime } from '@/utils'
90104
91105
export default {
@@ -127,6 +141,13 @@ export default {
127141
grayStatus: 'OPEN',
128142
des: ''
129143
},
144+
grayInfo: {
145+
instanceId: '',
146+
type: '',
147+
content: '',
148+
dialogVisible: false,
149+
loading: false
150+
},
130151
downloadLoading: false,
131152
tempRoute: {}
132153
}
@@ -238,6 +259,27 @@ export default {
238259
this.downloadLoading = false
239260
})
240261
},
262+
showGrayInfos(row, type) {
263+
this.grayInfo.instanceId = row.instanceId
264+
this.grayInfo.type = type
265+
this.grayInfo.dialogVisible = true
266+
this.grayInfo.content = ''
267+
this.refershGrayInfos()
268+
},
269+
refershGrayInfos() {
270+
this.grayInfo.loading = true
271+
if (this.grayInfo.type === 'SERVICES') {
272+
getServiceAllInfos(this.listQuery.serviceId, this.grayInfo.instanceId).then(res => {
273+
this.grayInfo.content = res.data
274+
this.grayInfo.loading = false
275+
})
276+
} else if (this.grayInfo.type === 'TRACKS') {
277+
getAllDefinitions(this.listQuery.serviceId, this.grayInfo.instanceId).then(res => {
278+
this.grayInfo.content = res.data
279+
this.grayInfo.loading = false
280+
})
281+
}
282+
},
241283
formatJson(filterVal, jsonData) {
242284
return jsonData.map(v => filterVal.map(j => {
243285
if (j === 'timestamp') {

spring-cloud-starter-gray-server/src/main/resources/META-INF/spring.factories

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
44
cn.springcloud.gray.server.configuration.DBStorageConfiguration,\
55
cn.springcloud.gray.server.configuration.OperateAuditConfiguration,\
66
cn.springcloud.gray.server.configuration.GrayServerEventAutoConfiguration,\
7-
cn.springcloud.gray.server.configuration.OAuth2Config
7+
cn.springcloud.gray.server.configuration.OAuth2Config,\
8+
cn.springcloud.gray.server.configuration.ClientRemoteConfiguration

0 commit comments

Comments
 (0)