first pillar
This commit is contained in:
parent
76f1df397b
commit
1b447b3f85
@ -37,11 +37,21 @@
|
||||
</init-param>
|
||||
</servlet>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>PillarServlet</servlet-name>
|
||||
<servlet-class>de.hsadmin.pillar.JsonPillarServlet</servlet-class>
|
||||
</servlet>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>Queue Status Servlet</servlet-name>
|
||||
<url-pattern>/queueStatus</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>PillarServlet</servlet-name>
|
||||
<url-pattern>/pillar</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>Queue PacTasks Servlet</servlet-name>
|
||||
<url-pattern>/queuePacTasks</url-pattern>
|
||||
|
@ -39,11 +39,21 @@
|
||||
</init-param>
|
||||
</servlet>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>PillarServlet</servlet-name>
|
||||
<servlet-class>de.hsadmin.pillar.JsonPillarServlet</servlet-class>
|
||||
</servlet>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>Queue Status Servlet</servlet-name>
|
||||
<url-pattern>/queueStatus</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>PillarServlet</servlet-name>
|
||||
<url-pattern>/pillar</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<!--
|
||||
<servlet-mapping>
|
||||
<servlet-name>Queue PacTasks Servlet</servlet-name>
|
||||
|
@ -37,11 +37,21 @@
|
||||
</init-param>
|
||||
</servlet>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>PillarServlet</servlet-name>
|
||||
<servlet-class>de.hsadmin.pillar.JsonPillarServlet</servlet-class>
|
||||
</servlet>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>Queue Status Servlet</servlet-name>
|
||||
<url-pattern>/queueStatus</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>PillarServlet</servlet-name>
|
||||
<url-pattern>/pillar</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>XmlRpcServlet</servlet-name>
|
||||
<url-pattern>/xmlrpc/*</url-pattern>
|
||||
@ -96,14 +106,4 @@
|
||||
<res-sharing-scope>Shareable</res-sharing-scope>
|
||||
</resource-ref>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>Hostsharing Administrative Area</web-resource-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<user-data-constraint>
|
||||
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
|
||||
</user-data-constraint>
|
||||
</security-constraint>
|
||||
|
||||
</web-app>
|
||||
|
90
hsarback/src/de/hsadmin/pillar/JsonPillarServlet.java
Normal file
90
hsarback/src/de/hsadmin/pillar/JsonPillarServlet.java
Normal file
@ -0,0 +1,90 @@
|
||||
package de.hsadmin.pillar;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.Query;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import de.hsadmin.core.model.Transaction;
|
||||
import de.hsadmin.core.qserv.ProcessorException;
|
||||
import de.hsadmin.mods.pac.Hive;
|
||||
import de.hsadmin.mods.pac.Pac;
|
||||
import de.hsadmin.mods.pac.PacComponent;
|
||||
|
||||
public class JsonPillarServlet extends HttpServlet {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||
final Transaction transaction = new Transaction("pilalr");
|
||||
final EntityManager em = transaction.getEntityManager();
|
||||
final String hiveFqdn = req.getParameter("hive");
|
||||
String hiveName = "";
|
||||
if (hiveFqdn != null && hiveFqdn.length() == 19 && hiveFqdn.endsWith(".hostsharing.net") && hiveFqdn.startsWith("h")) {
|
||||
hiveName = hiveFqdn.substring(0, 3);
|
||||
} else {
|
||||
throw new ServletException("error in hive parameter");
|
||||
}
|
||||
final Query hiveQuery = em.createQuery("SELECT h FROM Hives h WHERE h.name = :hive");
|
||||
hiveQuery.setParameter("hive", hiveName);
|
||||
final Object hiveResult = hiveQuery.getSingleResult();
|
||||
final Hive hive = (Hive) hiveResult;
|
||||
final Query pacsQuery = em.createQuery("SELECT p FROM Pacs p WHERE p.hive.name = :hive AND p.basepac.name = 'PAC/WEB'");
|
||||
pacsQuery.setParameter("hive", hiveName);
|
||||
final List<?> pacsResult = pacsQuery.getResultList();
|
||||
resp.setContentType("text/plain");
|
||||
final PrintWriter writer = resp.getWriter();
|
||||
writer.println("{");
|
||||
writer.println(" \"hivename\": \"" + hive.getHiveName() + "\"");
|
||||
writer.println(" \"hiveipv4\": \"" + hive.getInetAddr().getInet4Addr() + "\"");
|
||||
try {
|
||||
writer.println(" \"hiveipv6\": \"" + hive.getInetAddr().getInet6Addr() + "\"");
|
||||
} catch (ProcessorException e) {
|
||||
// dont care
|
||||
}
|
||||
writer.println(" \"pacs\": [");
|
||||
final Iterator<?> pacsIterator = pacsResult.iterator();
|
||||
boolean firstLoop = true;
|
||||
while (pacsIterator.hasNext()) {
|
||||
final Object result = pacsIterator.next();
|
||||
final Pac pac = (Pac) result;
|
||||
if (firstLoop) {
|
||||
firstLoop = false;
|
||||
writer.println(" {");
|
||||
} else {
|
||||
writer.println(" , {");
|
||||
}
|
||||
writer.println(" \"pac\": \"" + pac.getName() + "\"");
|
||||
writer.println(" , \"ipv4\": \"" + pac.getCurINetAddr().getInet4Addr() + "\"");
|
||||
try {
|
||||
writer.println(" , \"ipv6\": \"" + pac.getCurINetAddr().getInet6Addr() + "\"");
|
||||
} catch (ProcessorException e) {
|
||||
// dont care
|
||||
}
|
||||
final PacComponent pacQuota = pac.getPacComponent("QUOTA");
|
||||
if (pacQuota != null) {
|
||||
int quota = pacQuota.getQuantity();
|
||||
writer.println(" , \"quota\": \"" + quota + "\"");
|
||||
}
|
||||
final PacComponent pacOffice = pac.getPacComponent("OFFICE");
|
||||
if (pacOffice != null) {
|
||||
int office = pacOffice.getQuantity();
|
||||
writer.println(" , \"office\": \"" + office + "\"");
|
||||
}
|
||||
writer.println(" }");
|
||||
}
|
||||
writer.println(" ]");
|
||||
writer.println("}");
|
||||
writer.close();
|
||||
em.close();
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user