environ.put("REQUEST_METHOD", request.getMethod().toString()); environ.put( "SCRIPT_NAME", request.getPathInfo().substring(request.getPathInfo().lastIndexOf("/"))); environ.put("SERVER_NAME", new PyString(request.getServerName())); environ.put("SERVER_PORT", String.valueOf(request.getServerPort())); environ.put("PATH_INFO", request.getPathInfo()); environ.put("QUERY_STRING", request.getQueryString()); environ.put("wsgi.version", new PyTuple(new PyInteger(0), new PyInteger(1))); environ.put("wsgi.url_scheme", request.getScheme()); environ.put("wsgi.input", new PyFile(request.getInputStream())); environ.put("wsgi.errors", new PyFile(System.err)); environ.put("wsgi.multithread", true); environ.put("wsgi.multitprocess", false); environ.put("wsgi.run_once", false); return environ;
public static PyObject pigToPython(Object object) { if (object instanceof Tuple) { return pigTupleToPyTuple((Tuple) object); } else if (object instanceof DataBag) { PyList list = new PyList(); for (Tuple bagTuple : (DataBag) object) { list.add(pigTupleToPyTuple(bagTuple)); } return list; } else if (object instanceof Map<?, ?>) { PyDictionary newMap = new PyDictionary(); for (Map.Entry<?, ?> entry : ((Map<?, ?>) object).entrySet()) { newMap.put(entry.getKey(), pigToPython(entry.getValue())); } return newMap; } else if (object instanceof DataByteArray) { return Py.java2py(((DataByteArray) object).get()); } else { return Py.java2py(object); } }
@KeywordArgs(names = {"remoteServers", "startDate", "endDate"}, types = {List.class, Date.class, Date.class}) public PyDictionary getRemoteLogEntries(PyObject[] pyArgs, String[] keywords) throws JSONException { PyArgumentMap args = PyArgumentMap.interpretPyArgs(pyArgs, keywords, GetLogsScriptFunctions.class, "getRemoteLogEntries"); List<String> remoteServers = (List<String>) args.getArg("remoteServers"); if (remoteServers == null || remoteServers.size() == 0) { throw Py.ValueError("Missing required argument remoteServers"); } Date startDate = args.getDateArg("startDate"); Date endDate = args.getDateArg("endDate"); HashMap<String, List<LogEvent>> logsMap = getLogEntriesInternal(remoteServers, startDate, endDate); PyDictionary dict = new PyDictionary(); for(String key: logsMap.keySet()){ DatasetBuilder dataBuilder = new DatasetBuilder() .colNames("level","name","timestamp","message") .colTypes(String.class,String.class,Date.class,String.class); List<LogEvent> events = logsMap.get(key); // Convert the logging events into dataset rows for(LogEvent event: events){ dataBuilder.addRow(event.getLevel().toString(), event.getLoggerName(), new Date(event.getTimestamp()), event.getMessage().toString()); } dict.put(key, dataBuilder.build()); } return dict; }