Browse Source
* [Feature][Api] Refactor&Add api.controller.QueueV2Controller * update review3.2.0-release
xuhhui
2 years ago
committed by
GitHub
11 changed files with 700 additions and 0 deletions
@ -0,0 +1,174 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.apache.dolphinscheduler.api.controller; |
||||
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.CREATE_QUEUE_ERROR; |
||||
import static org.apache.dolphinscheduler.api.enums.Status.QUERY_QUEUE_LIST_ERROR; |
||||
import static org.apache.dolphinscheduler.api.enums.Status.UPDATE_QUEUE_ERROR; |
||||
import static org.apache.dolphinscheduler.api.enums.Status.VERIFY_QUEUE_ERROR; |
||||
|
||||
import org.apache.dolphinscheduler.api.aspect.AccessLogAnnotation; |
||||
import org.apache.dolphinscheduler.api.dto.queue.QueueCreateRequest; |
||||
import org.apache.dolphinscheduler.api.dto.queue.QueueCreateResponse; |
||||
import org.apache.dolphinscheduler.api.dto.queue.QueueListPagingResponse; |
||||
import org.apache.dolphinscheduler.api.dto.queue.QueueListResponse; |
||||
import org.apache.dolphinscheduler.api.dto.queue.QueueQueryRequest; |
||||
import org.apache.dolphinscheduler.api.dto.queue.QueueUpdateRequest; |
||||
import org.apache.dolphinscheduler.api.dto.queue.QueueUpdateResponse; |
||||
import org.apache.dolphinscheduler.api.dto.queue.QueueVerifyRequest; |
||||
import org.apache.dolphinscheduler.api.dto.queue.QueueVerifyResponse; |
||||
import org.apache.dolphinscheduler.api.exceptions.ApiException; |
||||
import org.apache.dolphinscheduler.api.service.QueueService; |
||||
import org.apache.dolphinscheduler.api.utils.Result; |
||||
import org.apache.dolphinscheduler.common.Constants; |
||||
import org.apache.dolphinscheduler.common.utils.ParameterUtils; |
||||
import org.apache.dolphinscheduler.dao.entity.User; |
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.http.HttpStatus; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.PathVariable; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
import org.springframework.web.bind.annotation.PutMapping; |
||||
import org.springframework.web.bind.annotation.RequestAttribute; |
||||
import org.springframework.web.bind.annotation.RequestBody; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.ResponseStatus; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import io.swagger.annotations.Api; |
||||
import io.swagger.annotations.ApiImplicitParam; |
||||
import io.swagger.annotations.ApiImplicitParams; |
||||
import io.swagger.annotations.ApiOperation; |
||||
import springfox.documentation.annotations.ApiIgnore; |
||||
|
||||
/** |
||||
* queue controller |
||||
*/ |
||||
@Api(tags = "QUEUE_TAG") |
||||
@RestController |
||||
@RequestMapping("/v2/queues") |
||||
public class QueueV2Controller extends BaseController { |
||||
|
||||
@Autowired |
||||
private QueueService queueService; |
||||
|
||||
/** |
||||
* query queue list |
||||
* |
||||
* @param loginUser login user |
||||
* @return queue list |
||||
*/ |
||||
@ApiOperation(value = "queryList", notes = "QUERY_QUEUE_LIST_NOTES") |
||||
@GetMapping(value = "/list") |
||||
@ResponseStatus(HttpStatus.OK) |
||||
@ApiException(QUERY_QUEUE_LIST_ERROR) |
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser") |
||||
public QueueListResponse queryList(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser) { |
||||
Result result = queueService.queryList(loginUser); |
||||
return new QueueListResponse(result); |
||||
} |
||||
|
||||
/** |
||||
* query queue list paging |
||||
* |
||||
* @param loginUser login user |
||||
* @param queueQueryRequest queueQueryRequest |
||||
* @return queue list |
||||
*/ |
||||
@ApiOperation(value = "queryQueueListPaging", notes = "QUERY_QUEUE_LIST_PAGING_NOTES") |
||||
@ApiImplicitParams({ |
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", dataTypeClass = String.class), |
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataTypeClass = int.class, example = "1"), |
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataTypeClass = int.class, example = "20") |
||||
}) |
||||
@GetMapping() |
||||
@ResponseStatus(HttpStatus.OK) |
||||
@ApiException(QUERY_QUEUE_LIST_ERROR) |
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser") |
||||
public QueueListPagingResponse queryQueueListPaging(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser, |
||||
QueueQueryRequest queueQueryRequest) { |
||||
Result result = checkPageParams(queueQueryRequest.getPageNo(), queueQueryRequest.getPageSize()); |
||||
if (!result.checkResult()) { |
||||
return new QueueListPagingResponse(result); |
||||
} |
||||
|
||||
String searchVal = ParameterUtils.handleEscapes(queueQueryRequest.getSearchVal()); |
||||
result = queueService.queryList(loginUser, searchVal, queueQueryRequest.getPageNo(), queueQueryRequest.getPageSize()); |
||||
return new QueueListPagingResponse(result); |
||||
} |
||||
|
||||
/** |
||||
* create queue |
||||
* |
||||
* @param loginUser login user |
||||
* @param queueCreateRequest queueCreateRequest |
||||
* @return create result |
||||
*/ |
||||
@ApiOperation(value = "createQueue", notes = "CREATE_QUEUE_NOTES") |
||||
@PostMapping(consumes = {"application/json"}) |
||||
@ResponseStatus(HttpStatus.CREATED) |
||||
@ApiException(CREATE_QUEUE_ERROR) |
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser") |
||||
public QueueCreateResponse createQueue(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser, |
||||
@RequestBody QueueCreateRequest queueCreateRequest) { |
||||
Result result = queueService.createQueue(loginUser, queueCreateRequest.getQueue(), queueCreateRequest.getQueueName()); |
||||
return new QueueCreateResponse(result); |
||||
} |
||||
|
||||
/** |
||||
* update queue |
||||
* |
||||
* @param loginUser login user |
||||
* @param id queue id |
||||
* @param queueUpdateRequest queueUpdateRequest |
||||
* @return update result code |
||||
*/ |
||||
@ApiOperation(value = "updateQueue", notes = "UPDATE_QUEUE_NOTES") |
||||
@ApiImplicitParams({ |
||||
@ApiImplicitParam(name = "id", value = "QUEUE_ID", required = true, dataTypeClass = int.class, example = "100") |
||||
}) |
||||
@PutMapping(value = "/{id}", consumes = {"application/json"}) |
||||
@ResponseStatus(HttpStatus.CREATED) |
||||
@ApiException(UPDATE_QUEUE_ERROR) |
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser") |
||||
public QueueUpdateResponse updateQueue(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser, |
||||
@PathVariable(value = "id") int id, @RequestBody QueueUpdateRequest queueUpdateRequest) { |
||||
Result result = queueService.updateQueue(loginUser, id, queueUpdateRequest.getQueue(), |
||||
queueUpdateRequest.getQueueName()); |
||||
return new QueueUpdateResponse(result); |
||||
} |
||||
|
||||
/** |
||||
* verify queue and queue name |
||||
* |
||||
* @param loginUser login user |
||||
* @param queueVerifyRequest queueVerifyRequest |
||||
* @return true if the queue name not exists, otherwise return false |
||||
*/ |
||||
@ApiOperation(value = "verifyQueue", notes = "VERIFY_QUEUE_NOTES") |
||||
@PostMapping(value = "/verify", consumes = {"application/json"}) |
||||
@ResponseStatus(HttpStatus.OK) |
||||
@ApiException(VERIFY_QUEUE_ERROR) |
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser") |
||||
public QueueVerifyResponse verifyQueue(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser, |
||||
@RequestBody QueueVerifyRequest queueVerifyRequest) { |
||||
Result result = queueService.verifyQueue(queueVerifyRequest.getQueue(), queueVerifyRequest.getQueueName()); |
||||
return new QueueVerifyResponse(result); |
||||
} |
||||
} |
@ -0,0 +1,36 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.apache.dolphinscheduler.api.dto.queue; |
||||
|
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* queue create request |
||||
*/ |
||||
@ApiModel("QUEUE-CREATE") |
||||
@Data |
||||
public class QueueCreateRequest { |
||||
|
||||
@ApiModelProperty(example = "queue11", required = true) |
||||
private String queue; |
||||
|
||||
@ApiModelProperty(example = "test_queue11", required = true) |
||||
private String queueName; |
||||
} |
@ -0,0 +1,39 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.apache.dolphinscheduler.api.dto.queue; |
||||
|
||||
import org.apache.dolphinscheduler.api.utils.Result; |
||||
import org.apache.dolphinscheduler.dao.entity.Queue; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* queue create response |
||||
*/ |
||||
@Data |
||||
public class QueueCreateResponse extends Result { |
||||
|
||||
private Queue data; |
||||
|
||||
public QueueCreateResponse(Result result) { |
||||
super(); |
||||
this.setCode(result.getCode()); |
||||
this.setMsg(result.getMsg()); |
||||
this.setData((Queue) result.getData()); |
||||
} |
||||
} |
@ -0,0 +1,40 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.apache.dolphinscheduler.api.dto.queue; |
||||
|
||||
import org.apache.dolphinscheduler.api.utils.PageInfo; |
||||
import org.apache.dolphinscheduler.api.utils.Result; |
||||
import org.apache.dolphinscheduler.dao.entity.Queue; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* queue list paging response |
||||
*/ |
||||
@Data |
||||
public class QueueListPagingResponse extends Result { |
||||
|
||||
private PageInfo<Queue> data; |
||||
|
||||
public QueueListPagingResponse(Result result) { |
||||
super(); |
||||
this.setCode(result.getCode()); |
||||
this.setMsg(result.getMsg()); |
||||
this.setData(result.getData()); |
||||
} |
||||
} |
@ -0,0 +1,43 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.apache.dolphinscheduler.api.dto.queue; |
||||
|
||||
import org.apache.dolphinscheduler.api.utils.Result; |
||||
import org.apache.dolphinscheduler.common.utils.JSONUtils; |
||||
import org.apache.dolphinscheduler.dao.entity.Project; |
||||
import org.apache.dolphinscheduler.dao.entity.Queue; |
||||
|
||||
import java.util.List; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* queue List response |
||||
*/ |
||||
@Data |
||||
public class QueueListResponse extends Result { |
||||
|
||||
private List<Queue> data; |
||||
|
||||
public QueueListResponse(Result result) { |
||||
super(); |
||||
this.setCode(result.getCode()); |
||||
this.setMsg(result.getMsg()); |
||||
this.setData(JSONUtils.toList(JSONUtils.toJsonString(result.getData()), Project.class)); |
||||
} |
||||
} |
@ -0,0 +1,40 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.apache.dolphinscheduler.api.dto.queue; |
||||
|
||||
import org.apache.dolphinscheduler.api.dto.PageQueryDto; |
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
||||
import com.fasterxml.jackson.annotation.JsonInclude; |
||||
|
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* queue query request |
||||
*/ |
||||
@ApiModel("QUEUE-QUERY") |
||||
@JsonIgnoreProperties(ignoreUnknown = true) |
||||
@JsonInclude(JsonInclude.Include.NON_NULL) |
||||
@Data |
||||
public class QueueQueryRequest extends PageQueryDto { |
||||
|
||||
@ApiModelProperty(example = "queue11") |
||||
private String searchVal; |
||||
} |
@ -0,0 +1,41 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.apache.dolphinscheduler.api.dto.queue; |
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
||||
import com.fasterxml.jackson.annotation.JsonInclude; |
||||
|
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* queue update request |
||||
*/ |
||||
@ApiModel("QUEUE-UPDATE") |
||||
@JsonIgnoreProperties(ignoreUnknown = true) |
||||
@JsonInclude(JsonInclude.Include.NON_NULL) |
||||
@Data |
||||
public class QueueUpdateRequest { |
||||
|
||||
@ApiModelProperty(example = "queue11", required = true) |
||||
private String queue; |
||||
|
||||
@ApiModelProperty(example = "test_queue11", required = true) |
||||
private String queueName; |
||||
} |
@ -0,0 +1,39 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.apache.dolphinscheduler.api.dto.queue; |
||||
|
||||
import org.apache.dolphinscheduler.api.utils.Result; |
||||
import org.apache.dolphinscheduler.dao.entity.Queue; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* queue update response |
||||
*/ |
||||
@Data |
||||
public class QueueUpdateResponse extends Result { |
||||
|
||||
private Queue data; |
||||
|
||||
public QueueUpdateResponse(Result result) { |
||||
super(); |
||||
this.setCode(result.getCode()); |
||||
this.setMsg(result.getMsg()); |
||||
this.setData((Queue) result.getData()); |
||||
} |
||||
} |
@ -0,0 +1,36 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.apache.dolphinscheduler.api.dto.queue; |
||||
|
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* queue verify request |
||||
*/ |
||||
@ApiModel("QUEUE-Verify") |
||||
@Data |
||||
public class QueueVerifyRequest { |
||||
|
||||
@ApiModelProperty(example = "queue11", required = true) |
||||
private String queue; |
||||
|
||||
@ApiModelProperty(example = "queue11", required = true) |
||||
private String queueName; |
||||
} |
@ -0,0 +1,39 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.apache.dolphinscheduler.api.dto.queue; |
||||
|
||||
import org.apache.dolphinscheduler.api.utils.Result; |
||||
import org.apache.dolphinscheduler.dao.entity.Queue; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* queue verify response |
||||
*/ |
||||
@Data |
||||
public class QueueVerifyResponse extends Result { |
||||
|
||||
private Queue data; |
||||
|
||||
public QueueVerifyResponse(Result result) { |
||||
super(); |
||||
this.setCode(result.getCode()); |
||||
this.setMsg(result.getMsg()); |
||||
this.setData((Queue) result.getData()); |
||||
} |
||||
} |
@ -0,0 +1,173 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.apache.dolphinscheduler.api.controller; |
||||
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; |
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; |
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; |
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; |
||||
|
||||
import org.apache.dolphinscheduler.api.dto.queue.QueueCreateRequest; |
||||
import org.apache.dolphinscheduler.api.dto.queue.QueueQueryRequest; |
||||
import org.apache.dolphinscheduler.api.dto.queue.QueueUpdateRequest; |
||||
import org.apache.dolphinscheduler.api.dto.queue.QueueVerifyRequest; |
||||
import org.apache.dolphinscheduler.api.enums.Status; |
||||
import org.apache.dolphinscheduler.api.utils.Result; |
||||
import org.apache.dolphinscheduler.common.utils.JSONUtils; |
||||
|
||||
import org.junit.Assert; |
||||
import org.junit.Test; |
||||
import org.slf4j.Logger; |
||||
import org.slf4j.LoggerFactory; |
||||
import org.springframework.http.MediaType; |
||||
import org.springframework.test.web.servlet.MvcResult; |
||||
|
||||
/** |
||||
* queue v2 controller test |
||||
*/ |
||||
public class QueueV2ControllerTest extends AbstractControllerTest { |
||||
private static final Logger logger = LoggerFactory.getLogger(QueueV2ControllerTest.class); |
||||
|
||||
private static final String QUEUE_CREATE_NAME = "queue_create"; |
||||
private static final String QUEUE_MODIFY_NAME = "queue_modify"; |
||||
private static final String QUEUE_NAME_CREATE_NAME = "queue_name_create"; |
||||
private static final String QUEUE_NAME_MODIFY_NAME = "queue_name_modify"; |
||||
private static final String NOT_EXISTS_NAME = "not_exists"; |
||||
|
||||
@Test |
||||
public void testQueryList() throws Exception { |
||||
MvcResult mvcResult = mockMvc.perform(get("/v2/queues/list") |
||||
.header(SESSION_ID, sessionId) |
||||
.accept(MediaType.ALL) |
||||
.contentType(MediaType.APPLICATION_JSON)) |
||||
.andExpect(status().isOk()) |
||||
.andReturn(); |
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
||||
Assert.assertNotNull(result); |
||||
Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue()); |
||||
logger.info("query list queue return result:{}", mvcResult.getResponse().getContentAsString()); |
||||
} |
||||
|
||||
@Test |
||||
public void testQueryQueueListPagingEmpty() throws Exception { |
||||
QueueQueryRequest queueQueryRequest = new QueueQueryRequest(); |
||||
queueQueryRequest.setSearchVal(""); |
||||
queueQueryRequest.setPageNo(1); |
||||
queueQueryRequest.setPageSize(20); |
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/v2/queues") |
||||
.header(SESSION_ID, sessionId) |
||||
.accept(MediaType.ALL) |
||||
.contentType(MediaType.APPLICATION_JSON) |
||||
.content(JSONUtils.toJsonString(queueQueryRequest))) |
||||
.andExpect(status().isOk()) |
||||
.andReturn(); |
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
||||
|
||||
Assert.assertNotNull(result); |
||||
logger.info("query list-paging queue return result:{}", mvcResult.getResponse().getContentAsString()); |
||||
} |
||||
|
||||
@Test |
||||
public void testCreateQueue() throws Exception { |
||||
QueueCreateRequest queueCreateRequest = new QueueCreateRequest(); |
||||
queueCreateRequest.setQueue(QUEUE_CREATE_NAME); |
||||
queueCreateRequest.setQueueName(QUEUE_NAME_CREATE_NAME); |
||||
MvcResult mvcResult = mockMvc.perform(post("/v2/queues") |
||||
.header(SESSION_ID, sessionId) |
||||
.accept(MediaType.ALL) |
||||
.contentType(MediaType.APPLICATION_JSON) |
||||
.content(JSONUtils.toJsonString(queueCreateRequest))) |
||||
.andExpect(status().isCreated()) |
||||
.andReturn(); |
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
||||
|
||||
Assert.assertNotNull(result); |
||||
Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue()); |
||||
logger.info("create queue return result:{}", mvcResult.getResponse().getContentAsString()); |
||||
} |
||||
|
||||
@Test |
||||
public void testUpdateQueue() throws Exception { |
||||
QueueUpdateRequest queueUpdateRequest = new QueueUpdateRequest(); |
||||
queueUpdateRequest.setQueue(QUEUE_MODIFY_NAME); |
||||
queueUpdateRequest.setQueueName(QUEUE_NAME_MODIFY_NAME); |
||||
MvcResult mvcResult = mockMvc.perform(put("/v2/queues/{id}", 1) |
||||
.header(SESSION_ID, sessionId) |
||||
.accept(MediaType.ALL) |
||||
.contentType(MediaType.APPLICATION_JSON) |
||||
.content(JSONUtils.toJsonString(queueUpdateRequest))) |
||||
.andExpect(status().isCreated()) |
||||
.andReturn(); |
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
||||
|
||||
Assert.assertNotNull(result); |
||||
Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue()); |
||||
logger.info("update queue return result:{}", mvcResult.getResponse().getContentAsString()); |
||||
} |
||||
|
||||
@Test |
||||
public void testVerifyQueue() throws Exception { |
||||
// queue value exist
|
||||
QueueVerifyRequest queueVerifyRequest = new QueueVerifyRequest(); |
||||
queueVerifyRequest.setQueue(QUEUE_MODIFY_NAME); |
||||
queueVerifyRequest.setQueueName(NOT_EXISTS_NAME); |
||||
MvcResult mvcResult = mockMvc.perform(post("/v2/queues/verify") |
||||
.header(SESSION_ID, sessionId) |
||||
.accept(MediaType.ALL) |
||||
.contentType(MediaType.APPLICATION_JSON) |
||||
.content(JSONUtils.toJsonString(queueVerifyRequest))) |
||||
.andExpect(status().isOk()) |
||||
.andReturn(); |
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
||||
Assert.assertNotNull(result); |
||||
Assert.assertEquals(Status.QUEUE_VALUE_EXIST.getCode(), result.getCode().intValue()); |
||||
|
||||
// queue name exist
|
||||
queueVerifyRequest.setQueue(NOT_EXISTS_NAME); |
||||
queueVerifyRequest.setQueueName(QUEUE_NAME_CREATE_NAME); |
||||
mvcResult = mockMvc.perform(post("/v2/queues/verify") |
||||
.header(SESSION_ID, sessionId) |
||||
.accept(MediaType.ALL) |
||||
.contentType(MediaType.APPLICATION_JSON) |
||||
.content(JSONUtils.toJsonString(queueVerifyRequest))) |
||||
.andExpect(status().isOk()) |
||||
.andReturn(); |
||||
result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
||||
Assert.assertNotNull(result); |
||||
Assert.assertEquals(Status.QUEUE_NAME_EXIST.getCode(), result.getCode().intValue()); |
||||
|
||||
// success
|
||||
queueVerifyRequest.setQueue(NOT_EXISTS_NAME); |
||||
queueVerifyRequest.setQueueName(NOT_EXISTS_NAME); |
||||
mvcResult = mockMvc.perform(post("/v2/queues/verify") |
||||
.header(SESSION_ID, sessionId) |
||||
.accept(MediaType.ALL) |
||||
.contentType(MediaType.APPLICATION_JSON) |
||||
.content(JSONUtils.toJsonString(queueVerifyRequest))) |
||||
.andExpect(status().isOk()) |
||||
.andReturn(); |
||||
result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
||||
Assert.assertNotNull(result); |
||||
Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue()); |
||||
logger.info(mvcResult.getResponse().getContentAsString()); |
||||
logger.info("verify queue return result:{}", mvcResult.getResponse().getContentAsString()); |
||||
} |
||||
} |
Loading…
Reference in new issue