[
https://issues.apache.org/jira/browse/FLINK-2978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15009262#comment-15009262
]
ASF GitHub Bot commented on FLINK-2978:
---------------------------------------
Github user sachingoel0101 commented on a diff in the pull request:
https://github.com/apache/flink/pull/1338#discussion_r45103312
--- Diff:
flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/HttpRequestHandler.java
---
@@ -0,0 +1,131 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.flink.runtime.webmonitor;
+
+/*****************************************************************************
+ * This code is based on the "HttpUploadServerHandler" from the
+ * Netty project's HTTP server example.
+ *
+ * See http://netty.io and
+ *
https://github.com/netty/netty/blob/netty-4.0.31.Final/example/src/main/java/io/netty/example/http/upload/HttpUploadServerHandler.java
+
*****************************************************************************/
+
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.SimpleChannelInboundHandler;
+import io.netty.handler.codec.http.HttpContent;
+import io.netty.handler.codec.http.HttpHeaders;
+import io.netty.handler.codec.http.HttpMethod;
+import io.netty.handler.codec.http.HttpObject;
+import io.netty.handler.codec.http.HttpRequest;
+import io.netty.handler.codec.http.LastHttpContent;
+import io.netty.handler.codec.http.QueryStringDecoder;
+import io.netty.handler.codec.http.QueryStringEncoder;
+import io.netty.handler.codec.http.multipart.DefaultHttpDataFactory;
+import io.netty.handler.codec.http.multipart.DiskFileUpload;
+import io.netty.handler.codec.http.multipart.HttpDataFactory;
+import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder;
+import
io.netty.handler.codec.http.multipart.HttpPostRequestDecoder.EndOfDataDecoderException;
+import io.netty.handler.codec.http.multipart.InterfaceHttpData;
+import
io.netty.handler.codec.http.multipart.InterfaceHttpData.HttpDataType;
+
+import java.io.File;
+import java.util.UUID;
+
+/**
+ * Simple code which handles all HTTP requests from the user, and passes
them to the Router
+ * handler directly if they do not involve file upload requests.
+ * If a file is required to be uploaded, it handles the upload, and in the
http request to the
+ * next handler, passes the name of the file to the next handler.
+ */
+public class HttpRequestHandler extends
SimpleChannelInboundHandler<HttpObject> {
+
+ private HttpRequest request;
+
+ private boolean readingChunks;
+
+ private static final HttpDataFactory factory = new
DefaultHttpDataFactory(true); // use disk
+
+ private String requestPath;
+
+ private HttpPostRequestDecoder decoder;
+
+ private final File uploadDir;
+
+ /**
+ * The directory where files should be uploaded.
+ */
+ public HttpRequestHandler(File uploadDir) {
+ this.uploadDir = uploadDir;
+ }
+
+ @Override
+ public void channelUnregistered(ChannelHandlerContext ctx) throws
Exception {
+ if (decoder != null) {
+ decoder.cleanFiles();
+ }
+ }
+
+ @Override
+ public void channelRead0(ChannelHandlerContext ctx, HttpObject msg)
throws Exception {
+ if (msg instanceof HttpRequest) {
+ request = (HttpRequest) msg;
+ requestPath = new
QueryStringDecoder(request.getUri()).path();
+ if (request.getMethod() != HttpMethod.POST) {
--- End diff --
I'm not sure what you mean.
> Integrate web submission interface into the new dashboard
> ---------------------------------------------------------
>
> Key: FLINK-2978
> URL: https://issues.apache.org/jira/browse/FLINK-2978
> Project: Flink
> Issue Type: New Feature
> Components: Web Client, Webfrontend
> Reporter: Sachin Goel
> Assignee: Sachin Goel
>
> As discussed in
> http://mail-archives.apache.org/mod_mbox/flink-dev/201511.mbox/%3CCAL3J2zQg6UBKNDnm=8tshpz6r4p2jvx7nrlom7caajrb9s6...@mail.gmail.com%3E,
> we should integrate job submission from the web into the dashboard.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)