Browse Source

cherry-pick [Bug-12410] [API]Fix the worker list result in workflow definition only has default

3.1.1-release
Kerwin 2 years ago committed by zhuangchong
parent
commit
eeb11eedfb
  1. 22
      dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/permission/ResourcePermissionCheckServiceImpl.java
  2. 2
      dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/K8SNamespaceServiceImpl.java
  3. 13
      dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/K8sNamespaceMapper.java
  4. 10
      dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/K8sNamespaceMapper.xml

22
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/permission/ResourcePermissionCheckServiceImpl.java

@ -42,6 +42,7 @@ import org.apache.dolphinscheduler.dao.entity.AccessToken;
import org.apache.dolphinscheduler.dao.entity.AlertGroup; import org.apache.dolphinscheduler.dao.entity.AlertGroup;
import org.apache.dolphinscheduler.dao.entity.DataSource; import org.apache.dolphinscheduler.dao.entity.DataSource;
import org.apache.dolphinscheduler.dao.entity.Environment; import org.apache.dolphinscheduler.dao.entity.Environment;
import org.apache.dolphinscheduler.dao.entity.K8sNamespace;
import org.apache.dolphinscheduler.dao.entity.Project; import org.apache.dolphinscheduler.dao.entity.Project;
import org.apache.dolphinscheduler.dao.entity.Queue; import org.apache.dolphinscheduler.dao.entity.Queue;
import org.apache.dolphinscheduler.dao.entity.Resource; import org.apache.dolphinscheduler.dao.entity.Resource;
@ -49,6 +50,7 @@ import org.apache.dolphinscheduler.dao.entity.TaskGroup;
import org.apache.dolphinscheduler.dao.entity.Tenant; import org.apache.dolphinscheduler.dao.entity.Tenant;
import org.apache.dolphinscheduler.dao.entity.UdfFunc; import org.apache.dolphinscheduler.dao.entity.UdfFunc;
import org.apache.dolphinscheduler.dao.entity.User; import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.entity.WorkerGroup;
import org.apache.dolphinscheduler.dao.mapper.AccessTokenMapper; import org.apache.dolphinscheduler.dao.mapper.AccessTokenMapper;
import org.apache.dolphinscheduler.dao.mapper.AlertGroupMapper; import org.apache.dolphinscheduler.dao.mapper.AlertGroupMapper;
import org.apache.dolphinscheduler.dao.mapper.AlertPluginInstanceMapper; import org.apache.dolphinscheduler.dao.mapper.AlertPluginInstanceMapper;
@ -172,7 +174,7 @@ public class ResourcePermissionCheckServiceImpl implements ResourcePermissionChe
return Collections.emptySet(); return Collections.emptySet();
} }
List<Queue> queues = queueMapper.selectList(null); List<Queue> queues = queueMapper.selectList(null);
return queues.isEmpty() ? Collections.emptySet() : queues.stream().map(Queue::getId).collect(toSet()); return queues.stream().map(Queue::getId).collect(toSet());
} }
} }
@ -257,9 +259,6 @@ public class ResourcePermissionCheckServiceImpl implements ResourcePermissionChe
@Override @Override
public Set<Integer> listAuthorizedResource(int userId, Logger logger) { public Set<Integer> listAuthorizedResource(int userId, Logger logger) {
List<UdfFunc> udfFuncList = udfFuncMapper.listAuthorizedUdfByUserId(userId); List<UdfFunc> udfFuncList = udfFuncMapper.listAuthorizedUdfByUserId(userId);
if (udfFuncList.isEmpty()){
return Collections.emptySet();
}
return udfFuncList.stream().map(UdfFunc::getId).collect(toSet()); return udfFuncList.stream().map(UdfFunc::getId).collect(toSet());
} }
@ -286,9 +285,6 @@ public class ResourcePermissionCheckServiceImpl implements ResourcePermissionChe
@Override @Override
public Set<Integer> listAuthorizedResource(int userId, Logger logger) { public Set<Integer> listAuthorizedResource(int userId, Logger logger) {
List<TaskGroup> taskGroupList = taskGroupMapper.listAuthorizedResource(userId); List<TaskGroup> taskGroupList = taskGroupMapper.listAuthorizedResource(userId);
if (taskGroupList.isEmpty()) {
return Collections.emptySet();
}
return taskGroupList.stream().map(TaskGroup::getId).collect(Collectors.toSet()); return taskGroupList.stream().map(TaskGroup::getId).collect(Collectors.toSet());
} }
@ -319,7 +315,8 @@ public class ResourcePermissionCheckServiceImpl implements ResourcePermissionChe
@Override @Override
public Set<Integer> listAuthorizedResource(int userId, Logger logger) { public Set<Integer> listAuthorizedResource(int userId, Logger logger) {
return Collections.emptySet(); List<K8sNamespace> k8sNamespaces = k8sNamespaceMapper.queryAuthedNamespaceListByUserId(userId);
return k8sNamespaces.stream().map(K8sNamespace::getId).collect(Collectors.toSet());
} }
} }
@ -346,9 +343,6 @@ public class ResourcePermissionCheckServiceImpl implements ResourcePermissionChe
@Override @Override
public Set<Integer> listAuthorizedResource(int userId, Logger logger) { public Set<Integer> listAuthorizedResource(int userId, Logger logger) {
List<Environment> environments = environmentMapper.queryAllEnvironmentList(); List<Environment> environments = environmentMapper.queryAllEnvironmentList();
if (environments.isEmpty()) {
return Collections.emptySet();
}
return environments.stream().map(Environment::getId).collect(Collectors.toSet()); return environments.stream().map(Environment::getId).collect(Collectors.toSet());
} }
} }
@ -375,7 +369,8 @@ public class ResourcePermissionCheckServiceImpl implements ResourcePermissionChe
@Override @Override
public Set<Integer> listAuthorizedResource(int userId, Logger logger) { public Set<Integer> listAuthorizedResource(int userId, Logger logger) {
return Collections.emptySet(); List<WorkerGroup> workerGroups = workerGroupMapper.queryAllWorkerGroup();
return workerGroups.stream().map(WorkerGroup::getId).collect(Collectors.toSet());
} }
} }
@ -463,9 +458,6 @@ public class ResourcePermissionCheckServiceImpl implements ResourcePermissionChe
@Override @Override
public Set<Integer> listAuthorizedResource(int userId, Logger logger) { public Set<Integer> listAuthorizedResource(int userId, Logger logger) {
if (userId != 0) {
return Collections.emptySet();
}
List<Tenant> tenantList = tenantMapper.queryAll(); List<Tenant> tenantList = tenantMapper.queryAll();
return tenantList.stream().map(Tenant::getId).collect(Collectors.toSet()); return tenantList.stream().map(Tenant::getId).collect(Collectors.toSet());
} }

2
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/K8SNamespaceServiceImpl.java

@ -424,7 +424,7 @@ public class K8SNamespaceServiceImpl extends BaseServiceImpl implements K8sNames
if (isAdmin(loginUser)) { if (isAdmin(loginUser)) {
k8sNamespaces = k8sNamespaceMapper.selectList(null); k8sNamespaces = k8sNamespaceMapper.selectList(null);
} else { } else {
k8sNamespaces = k8sNamespaceMapper.queryNamespaceAvailable(loginUser.getId()); k8sNamespaces = k8sNamespaceMapper.queryAuthedNamespaceListByUserId(loginUser.getId());
} }
setClusterName(k8sNamespaces); setClusterName(k8sNamespaces);
return k8sNamespaces; return k8sNamespaces;

13
dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/K8sNamespaceMapper.java

@ -30,6 +30,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
* namespace interface * namespace interface
*/ */
public interface K8sNamespaceMapper extends BaseMapper<K8sNamespace> { public interface K8sNamespaceMapper extends BaseMapper<K8sNamespace> {
/** /**
* k8s namespace page * k8s namespace page
* *
@ -63,15 +64,7 @@ public interface K8sNamespaceMapper extends BaseMapper<K8sNamespace> {
* @param userId userId * @param userId userId
* @return namespace list * @return namespace list
*/ */
List<K8sNamespace> queryAuthedNamespaceListByUserId(@Param("userId") int userId); List<K8sNamespace> queryAuthedNamespaceListByUserId(@Param("userId") Integer userId);
/**
* query namespace can use
*
* @param userId userId
* @return namespace list
*/
List<K8sNamespace> queryNamespaceAvailable(@Param("userId") Integer userId);
/** /**
* check the target namespace * check the target namespace
@ -80,4 +73,4 @@ public interface K8sNamespaceMapper extends BaseMapper<K8sNamespace> {
* @return true if exist else return null * @return true if exist else return null
*/ */
K8sNamespace queryByNamespaceCode(@Param("clusterCode") Long namespaceCode); K8sNamespace queryByNamespaceCode(@Param("clusterCode") Long namespaceCode);
} }

10
dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/K8sNamespaceMapper.xml

@ -70,16 +70,6 @@
where p.id = rel.namespace_id and rel.user_id= #{userId} where p.id = rel.namespace_id and rel.user_id= #{userId}
</select> </select>
<select id="queryNamespaceAvailable" resultType="org.apache.dolphinscheduler.dao.entity.K8sNamespace">
select
<include refid="baseSqlV2">
<property name="alias" value="b"/>
</include>
from ( select namespace_id from t_ds_relation_namespace_user where user_id= #{userId} ) a
left join t_ds_k8s_namespace b
on b.id = a.namespace_id
where b.id is not null
</select>
<select id="queryByNamespaceCode" resultType="org.apache.dolphinscheduler.dao.entity.K8sNamespace"> <select id="queryByNamespaceCode" resultType="org.apache.dolphinscheduler.dao.entity.K8sNamespace">
select select
<include refid="baseSql"/> <include refid="baseSql"/>

Loading…
Cancel
Save