Github user knusbaum commented on a diff in the pull request: https://github.com/apache/storm/pull/845#discussion_r44996393 --- Diff: storm-core/src/clj/backtype/storm/daemon/supervisor.clj --- @@ -454,10 +456,78 @@ (shutdown-worker supervisor id)) )) +(defn get-blob-localname + "Given the blob information either gets the localname field if it exists, + else routines the default value passed in." + [blob-info defaultValue] + (if-let [val (if blob-info (get blob-info "localname") nil)] val defaultValue)) + +(defn should-uncompress-blob? + "Given the blob information returns the value of the uncompress field, handling it either being + a string or a boolean value, or ifs its not specified then returns false" + [blob-info] + (boolean (and blob-info + (if-let [val (get blob-info "uncompress")] + (.booleanValue (Boolean. val)))))) + +(defn remove-blob-references + "Remove a reference to a blob when its no longer needed." + [localizer storm-id conf] + (let [storm-conf (read-supervisor-storm-conf conf storm-id) + blobstore-map (storm-conf TOPOLOGY-BLOBSTORE-MAP) + user (storm-conf TOPOLOGY-SUBMITTER-USER) + topo-name (storm-conf TOPOLOGY-NAME)] + (if blobstore-map (doseq [[k, v] blobstore-map] + (.removeBlobReference localizer + k + user + topo-name + (should-uncompress-blob? v)))))) + +(defn blobstore-map-to-localresources + "Returns a list of LocalResources based on the blobstore-map passed in." + [blobstore-map] + (if blobstore-map + (for [[k, v] blobstore-map] (LocalResource. k (should-uncompress-blob? v))) + ())) --- End diff -- Body should be on its own line. What is the empty pair of parens here for?
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---