package com.hqyg.disjob.register.auth.node;
import java.util.ArrayList;
import java.util.List;
import org.apache.curator.framework.AuthInfo;
import org.apache.curator.framework.CuratorFramework;
import org.apache.zookeeper.data.ACL;
import com.hqyg.disjob.register.auth.AuthConstants;
import com.hqyg.disjob.register.auth.AuthZKRegistry;
import com.hqyg.disjob.register.auth.EjobAuthInfo;
import com.hqyg.disjob.register.auth.EjobOwnerACL;
import com.hqyg.disjob.register.repository.ZnodeApi;
import com.hqyg.disjob.register.repository.ZnodeApiCuratorImpl;
class AdminAuthNode{
protected CuratorFramework client;
protected ZnodeApi znode = new ZnodeApiCuratorImpl();
private String nodepath = AuthConstants.adminRootPath;
public AdminAuthNode(CuratorFramework client){
this.client = client;
}
public List<AuthInfo> getAuthInfos(){
List<AuthInfo> authInfos = new ArrayList<>();
if(znode.getData(client, AuthConstants.adminRootPath) == null){
new AuthZKRegistry(client).init();
}
authInfos.add(new EjobAuthInfo(znode.getByteData(client, nodepath)));
return authInfos;
}
public List<ACL> getACLs() {
List<ACL> acllist = new ArrayList<>();
String adminAccount = znode.getData(client, nodepath);
acllist.add(new EjobOwnerACL(adminAccount));
return acllist;
}
}