package tachyon.web;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import tachyon.master.MasterInfo;
import tachyon.thrift.ClientDependencyInfo;
import tachyon.thrift.DependencyDoesNotExistException;
import tachyon.thrift.FileDoesNotExistException;
public class WebInterfaceDependencyServlet extends HttpServlet {
private static final long serialVersionUID = 2071462168900313417L;
private MasterInfo mMasterInfo;
public WebInterfaceDependencyServlet(MasterInfo masterInfo) {
mMasterInfo = masterInfo;
}
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setAttribute("masterNodeAddress", mMasterInfo.getMasterAddress().toString());
request.setAttribute("filePath", request.getParameter("filePath"));
request.setAttribute("error", "");
int dependencyId = Integer.parseInt(request.getParameter("id"));
List<String> parentFileNames = new ArrayList<String>();
List<String> childrenFileNames = new ArrayList<String>();
try {
ClientDependencyInfo dependencyInfo = mMasterInfo.getClientDependencyInfo(dependencyId);
for (int pId : dependencyInfo.parents) {
parentFileNames.add(mMasterInfo.getPath(pId));
}
for (int cId : dependencyInfo.children) {
childrenFileNames.add(mMasterInfo.getPath(cId));
}
} catch (DependencyDoesNotExistException ddnee) {
request.setAttribute("error", ddnee.getMessage());
} catch (FileDoesNotExistException fdne) {
request.setAttribute("error", fdne.getMessage());
}
Collections.sort(parentFileNames);
Collections.sort(childrenFileNames);
request.setAttribute("parentFileNames", parentFileNames);
request.setAttribute("childrenFileNames", childrenFileNames);
getServletContext().getRequestDispatcher("/dependency.jsp").forward(request, response);
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
return;
}
}