[Feature][Api] Refactor org.apache.dolphinscheduler.api.controller.QueueController (#11154)

* [Feature][Api] Refactor org.apache.dolphinscheduler.api.controller.QueueController
This commit is contained in:
xuhhui 2022-08-10 11:34:37 +08:00 committed by GitHub
parent 8774415197
commit a50f110d3e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 31 additions and 39 deletions

View File

@ -30,8 +30,6 @@ import org.apache.dolphinscheduler.common.Constants;
import org.apache.dolphinscheduler.common.utils.ParameterUtils; import org.apache.dolphinscheduler.common.utils.ParameterUtils;
import org.apache.dolphinscheduler.dao.entity.User; import org.apache.dolphinscheduler.dao.entity.User;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -74,17 +72,16 @@ public class QueueController extends BaseController {
@ApiException(QUERY_QUEUE_LIST_ERROR) @ApiException(QUERY_QUEUE_LIST_ERROR)
@AccessLogAnnotation(ignoreRequestArgs = "loginUser") @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
public Result queryList(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser) { public Result queryList(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser) {
Map<String, Object> result = queueService.queryList(loginUser); return queueService.queryList(loginUser);
return returnDataList(result);
} }
/** /**
* query queue list paging * query queue list paging
* *
* @param loginUser login user * @param loginUser login user
* @param pageNo page number * @param pageNo page number
* @param searchVal search value * @param searchVal search value
* @param pageSize page size * @param pageSize page size
* @return queue list * @return queue list
*/ */
@ApiOperation(value = "queryQueueListPaging", notes = "QUERY_QUEUE_LIST_PAGING_NOTES") @ApiOperation(value = "queryQueueListPaging", notes = "QUERY_QUEUE_LIST_PAGING_NOTES")
@ -115,7 +112,7 @@ public class QueueController extends BaseController {
* create queue * create queue
* *
* @param loginUser login user * @param loginUser login user
* @param queue queue * @param queue queue
* @param queueName queue name * @param queueName queue name
* @return create result * @return create result
*/ */
@ -131,16 +128,15 @@ public class QueueController extends BaseController {
public Result createQueue(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser, public Result createQueue(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
@RequestParam(value = "queue") String queue, @RequestParam(value = "queue") String queue,
@RequestParam(value = "queueName") String queueName) { @RequestParam(value = "queueName") String queueName) {
Map<String, Object> result = queueService.createQueue(loginUser, queue, queueName); return queueService.createQueue(loginUser, queue, queueName);
return returnDataList(result);
} }
/** /**
* update queue * update queue
* *
* @param loginUser login user * @param loginUser login user
* @param queue queue * @param queue queue
* @param id queue id * @param id queue id
* @param queueName queue name * @param queueName queue name
* @return update result code * @return update result code
*/ */
@ -158,15 +154,14 @@ public class QueueController extends BaseController {
@PathVariable(value = "id") int id, @PathVariable(value = "id") int id,
@RequestParam(value = "queue") String queue, @RequestParam(value = "queue") String queue,
@RequestParam(value = "queueName") String queueName) { @RequestParam(value = "queueName") String queueName) {
Map<String, Object> result = queueService.updateQueue(loginUser, id, queue, queueName); return queueService.updateQueue(loginUser, id, queue, queueName);
return returnDataList(result);
} }
/** /**
* verify queue and queue name * verify queue and queue name
* *
* @param loginUser login user * @param loginUser login user
* @param queue queue * @param queue queue
* @param queueName queue name * @param queueName queue name
* @return true if the queue name not exists, otherwise return false * @return true if the queue name not exists, otherwise return false
*/ */
@ -181,9 +176,7 @@ public class QueueController extends BaseController {
@AccessLogAnnotation(ignoreRequestArgs = "loginUser") @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
public Result verifyQueue(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser, public Result verifyQueue(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
@RequestParam(value = "queue") String queue, @RequestParam(value = "queue") String queue,
@RequestParam(value = "queueName") String queueName @RequestParam(value = "queueName") String queueName) {
) {
return queueService.verifyQueue(queue, queueName); return queueService.verifyQueue(queue, queueName);
} }
} }

View File

@ -34,7 +34,7 @@ public interface QueueService {
* @param loginUser login user * @param loginUser login user
* @return queue list * @return queue list
*/ */
Map<String, Object> queryList(User loginUser); Result queryList(User loginUser);
/** /**
* query queue list paging * query queue list paging
@ -55,7 +55,7 @@ public interface QueueService {
* @param queueName queue name * @param queueName queue name
* @return create result * @return create result
*/ */
Map<String, Object> createQueue(User loginUser, String queue, String queueName); Result createQueue(User loginUser, String queue, String queueName);
/** /**
* update queue * update queue
@ -66,7 +66,7 @@ public interface QueueService {
* @param queueName queue name * @param queueName queue name
* @return update result code * @return update result code
*/ */
Map<String, Object> updateQueue(User loginUser, int id, String queue, String queueName); Result updateQueue(User loginUser, int id, String queue, String queueName);
/** /**
* verify queue and queueName * verify queue and queueName

View File

@ -116,15 +116,15 @@ public class QueueServiceImpl extends BaseServiceImpl implements QueueService {
* @return queue list * @return queue list
*/ */
@Override @Override
public Map<String, Object> queryList(User loginUser) { public Result queryList(User loginUser) {
Map<String, Object> result = new HashMap<>(); Result result = new Result();
Set<Integer> ids = resourcePermissionCheckService.userOwnedResourceIdsAcquisition(AuthorizationType.QUEUE, loginUser.getId(), logger); Set<Integer> ids = resourcePermissionCheckService.userOwnedResourceIdsAcquisition(AuthorizationType.QUEUE, loginUser.getId(), logger);
if (loginUser.getUserType().equals(UserType.GENERAL_USER)) { if (loginUser.getUserType().equals(UserType.GENERAL_USER)) {
ids = ids.isEmpty() ? new HashSet<>() : ids; ids = ids.isEmpty() ? new HashSet<>() : ids;
ids.add(Constants.DEFAULT_QUEUE_ID); ids.add(Constants.DEFAULT_QUEUE_ID);
} }
List<Queue> queueList = queueMapper.selectBatchIds(ids); List<Queue> queueList = queueMapper.selectBatchIds(ids);
result.put(Constants.DATA_LIST, queueList); result.setData(queueList);
putMsg(result, Status.SUCCESS); putMsg(result, Status.SUCCESS);
return result; return result;
} }
@ -169,8 +169,8 @@ public class QueueServiceImpl extends BaseServiceImpl implements QueueService {
*/ */
@Override @Override
@Transactional @Transactional
public Map<String, Object> createQueue(User loginUser, String queue, String queueName) { public Result createQueue(User loginUser, String queue, String queueName) {
Map<String, Object> result = new HashMap<>(); Result result = new Result();
if (!canOperatorPermissions(loginUser,null, AuthorizationType.QUEUE,YARN_QUEUE_CREATE)) { if (!canOperatorPermissions(loginUser,null, AuthorizationType.QUEUE,YARN_QUEUE_CREATE)) {
throw new ServiceException(Status.USER_NO_OPERATION_PERM); throw new ServiceException(Status.USER_NO_OPERATION_PERM);
} }
@ -179,7 +179,7 @@ public class QueueServiceImpl extends BaseServiceImpl implements QueueService {
createQueueValid(queueObj); createQueueValid(queueObj);
queueMapper.insert(queueObj); queueMapper.insert(queueObj);
result.put(Constants.DATA_LIST, queueObj); result.setData(queueObj);
putMsg(result, Status.SUCCESS); putMsg(result, Status.SUCCESS);
permissionPostHandle(AuthorizationType.QUEUE, loginUser.getId(), Collections.singletonList(queueObj.getId()), logger); permissionPostHandle(AuthorizationType.QUEUE, loginUser.getId(), Collections.singletonList(queueObj.getId()), logger);
return result; return result;
@ -195,8 +195,8 @@ public class QueueServiceImpl extends BaseServiceImpl implements QueueService {
* @return update result code * @return update result code
*/ */
@Override @Override
public Map<String, Object> updateQueue(User loginUser, int id, String queue, String queueName) { public Result updateQueue(User loginUser, int id, String queue, String queueName) {
Map<String, Object> result = new HashMap<>(); Result result = new Result();
if (!canOperatorPermissions(loginUser,new Object[]{id}, AuthorizationType.QUEUE,YARN_QUEUE_UPDATE)) { if (!canOperatorPermissions(loginUser,new Object[]{id}, AuthorizationType.QUEUE,YARN_QUEUE_UPDATE)) {
throw new ServiceException(Status.USER_NO_OPERATION_PERM); throw new ServiceException(Status.USER_NO_OPERATION_PERM);
} }
@ -213,7 +213,7 @@ public class QueueServiceImpl extends BaseServiceImpl implements QueueService {
} }
queueMapper.updateById(updateQueue); queueMapper.updateById(updateQueue);
result.setData(updateQueue);
putMsg(result, Status.SUCCESS); putMsg(result, Status.SUCCESS);
return result; return result;
} }
@ -231,7 +231,7 @@ public class QueueServiceImpl extends BaseServiceImpl implements QueueService {
Queue queueValidator = new Queue(queueName, queue); Queue queueValidator = new Queue(queueName, queue);
createQueueValid(queueValidator); createQueueValid(queueValidator);
result.setData(queueValidator);
putMsg(result, Status.SUCCESS); putMsg(result, Status.SUCCESS);
return result; return result;
} }

View File

@ -41,7 +41,6 @@ import java.text.MessageFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set; import java.util.Set;
import org.junit.After; import org.junit.After;
@ -101,8 +100,8 @@ public class QueueServiceTest {
ids.add(1); ids.add(1);
Mockito.when(resourcePermissionCheckService.userOwnedResourceIdsAcquisition(AuthorizationType.QUEUE, getLoginUser().getId(), queueServiceImplLogger)).thenReturn(ids); Mockito.when(resourcePermissionCheckService.userOwnedResourceIdsAcquisition(AuthorizationType.QUEUE, getLoginUser().getId(), queueServiceImplLogger)).thenReturn(ids);
Mockito.when(queueMapper.selectBatchIds(Mockito.anySet())).thenReturn(getQueueList()); Mockito.when(queueMapper.selectBatchIds(Mockito.anySet())).thenReturn(getQueueList());
Map<String, Object> result = queueService.queryList(getLoginUser()); Result result = queueService.queryList(getLoginUser());
List<Queue> queueList = (List<Queue>) result.get(Constants.DATA_LIST); List<Queue> queueList = (List<Queue>) result.getData();
Assert.assertTrue(CollectionUtils.isNotEmpty(queueList)); Assert.assertTrue(CollectionUtils.isNotEmpty(queueList));
} }
@ -138,8 +137,8 @@ public class QueueServiceTest {
Assertions.assertEquals(formatter, exception.getMessage()); Assertions.assertEquals(formatter, exception.getMessage());
// correct // correct
Map<String, Object> result = queueService.createQueue(getLoginUser(), QUEUE_NAME, QUEUE_NAME); Result result = queueService.createQueue(getLoginUser(), QUEUE_NAME, QUEUE_NAME);
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS)); Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue());
} }
@Test @Test
@ -172,18 +171,18 @@ public class QueueServiceTest {
//success //success
Mockito.when(userMapper.existUser(Mockito.anyString())).thenReturn(false); Mockito.when(userMapper.existUser(Mockito.anyString())).thenReturn(false);
Map<String, Object> result = queueService.updateQueue(getLoginUser(), 1, NOT_EXISTS, NOT_EXISTS); Result result = queueService.updateQueue(getLoginUser(), 1, NOT_EXISTS, NOT_EXISTS);
Assert.assertEquals(Status.SUCCESS.getCode(), ((Status) result.get(Constants.STATUS)).getCode()); Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue());
// success update with same queue name // success update with same queue name
Mockito.when(queueMapper.existQueue(NOT_EXISTS_FINAL, null)).thenReturn(false); Mockito.when(queueMapper.existQueue(NOT_EXISTS_FINAL, null)).thenReturn(false);
result = queueService.updateQueue(getLoginUser(), 1, NOT_EXISTS_FINAL, NOT_EXISTS); result = queueService.updateQueue(getLoginUser(), 1, NOT_EXISTS_FINAL, NOT_EXISTS);
Assert.assertEquals(Status.SUCCESS.getCode(), ((Status) result.get(Constants.STATUS)).getCode()); Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue());
// success update with same queue value // success update with same queue value
Mockito.when(queueMapper.existQueue(null, NOT_EXISTS_FINAL)).thenReturn(false); Mockito.when(queueMapper.existQueue(null, NOT_EXISTS_FINAL)).thenReturn(false);
result = queueService.updateQueue(getLoginUser(), 1, NOT_EXISTS, NOT_EXISTS_FINAL); result = queueService.updateQueue(getLoginUser(), 1, NOT_EXISTS, NOT_EXISTS_FINAL);
Assert.assertEquals(Status.SUCCESS.getCode(), ((Status) result.get(Constants.STATUS)).getCode()); Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue());
} }
@Test @Test