[
https://issues.apache.org/jira/browse/STORM-901?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14980623#comment-14980623
]
ASF GitHub Bot commented on STORM-901:
--------------------------------------
Github user d2r commented on a diff in the pull request:
https://github.com/apache/storm/pull/822#discussion_r43399109
--- Diff: storm-core/src/clj/backtype/storm/daemon/logviewer.clj ---
@@ -333,42 +503,112 @@ Note that if anything goes wrong, this will throw an
Error and exit."
(name k) "'")
ex)))))
+(defn list-log-files
+ [user topoId port log-root callback origin]
+ (let [file-results
+ (if (nil? topoId)
+ (if (nil? port)
+ (get-all-logs-for-rootdir (File. log-root))
+ (reduce concat
+ (for [topo-dir (.listFiles (File. log-root))]
+ (reduce concat
+ (for [port-dir (.listFiles topo-dir)]
+ (if (= (str port) (.getName port-dir))
+ (into [] (.listFiles port-dir))))))))
+ (if (nil? port)
+ (let [topo-dir (File. (str log-root file-path-separator
topoId))]
+ (if (.exists topo-dir)
+ (reduce concat
+ (for [port-dir (.listFiles topo-dir)]
+ (into [] (.listFiles port-dir))))
+ []))
+ (let [port-dir (get-worker-dir-from-root log-root topoId port)]
+ (if (.exists port-dir)
+ (into [] (.listFiles port-dir))
+ []))))
+ file-strs (sort (for [file file-results]
+ (get-topo-port-workerlog file)))]
+ (json-response file-strs
+ callback
+ :headers {"Access-Control-Allow-Origin" origin
+ "Access-Control-Allow-Credentials" "true"})))
+
(defroutes log-routes
(GET "/log" [:as req & m]
- (try
- (let [servlet-request (:servlet-request req)
- log-root (:log-root req)
- user (.getUserName http-creds-handler servlet-request)
- start (if (:start m) (parse-long-from-map m :start))
- length (if (:length m) (parse-long-from-map m :length))]
- (log-template (log-page (:file m) start length (:grep m) user
log-root)
- (:file m) user))
- (catch InvalidRequestException ex
- (log-error ex)
- (ring-response-from-exception ex))))
+ (try
+ (let [servlet-request (:servlet-request req)
+ log-root (:log-root req)
+ user (.getUserName http-creds-handler servlet-request)
+ start (if (:start m) (parse-long-from-map m :start))
+ length (if (:length m) (parse-long-from-map m :length))
+ file (url-decode (:file m))]
+ (log-template (log-page file start length (:grep m) user log-root)
+ file user))
+ (catch InvalidRequestException ex
+ (log-error ex)
+ (ring-response-from-exception ex))))
+ (GET "/daemonlog" [:as req & m]
+ (try
+ (let [servlet-request (:servlet-request req)
+ daemonlog-root (:daemonlog-root req)
+ user (.getUserName http-creds-handler servlet-request)
+ start (if (:start m) (parse-long-from-map m :start))
+ length (if (:length m) (parse-long-from-map m :length))
+ file (url-decode (:file m))]
+ (log-template (daemonlog-page file start length (:grep m) user
daemonlog-root)
+ file user))
+ (catch InvalidRequestException ex
+ (log-error ex)
+ (ring-response-from-exception ex))))
(GET "/download/:file" [:as {:keys [servlet-request servlet-response
log-root]} file & m]
- (try
- (let [user (.getUserName http-creds-handler servlet-request)]
- (download-log-file file servlet-request servlet-response user
log-root))
- (catch InvalidRequestException ex
- (log-error ex)
- (ring-response-from-exception ex))))
+ ;; We do not use servlet-response here, but do not remove it from the
+ ;; :keys list, or this rule could stop working when an authentication
+ ;; filter is configured.
+ (try
+ (let [user (.getUserName http-creds-handler servlet-request)]
+ (download-log-file file servlet-request servlet-response user
log-root))
+ (catch InvalidRequestException ex
+ (log-error ex)
+ (ring-response-from-exception ex))))
+ (GET "/daemondownload/:file" [:as {:keys [servlet-request
servlet-response daemonlog-root]} file & m]
+ ;; We do not use servlet-response here, but do not remove it from the
+ ;; :keys list, or this rule could stop working when an authentication
+ ;; filter is configured.
--- End diff --
Same comment; remove this text?
> Worker Artifacts Directory
> --------------------------
>
> Key: STORM-901
> URL: https://issues.apache.org/jira/browse/STORM-901
> Project: Apache Storm
> Issue Type: New Feature
> Components: storm-core
> Reporter: Robert Joseph Evans
> Assignee: Zhuo Liu
> Attachments: daemon-logs-view.png, worker-logs-view.png
>
>
> At Yahoo we have added in a separate directory that stores a workers log
> files, but also provides a place where the worker can place other files that
> it might help with debugging. It is a new directory in the current working
> directory of the worker process. The files in there are cleaned up if they
> get too large, but provides a place for heap dumps GC logs, etc.
> This work is already done, but needs to be put back into open source.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)