Github user d2r commented on a diff in the pull request:

    https://github.com/apache/storm/pull/845#discussion_r45261252
  
    --- Diff: storm-core/src/clj/backtype/storm/daemon/supervisor.clj ---
    @@ -454,10 +448,79 @@
           (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]
    +  (or (get blob-info "localname") 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 if it's not specified then returns false"
    +  [blob-info]
    +  (Boolean. (get blob-info "uncompress")))
    +
    +(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)))
    +    ()))
    +
    +(defn add-blob-references
    +  "For each of the downloaded topologies, adds references to the blobs 
that the topologies are
    +  using. This is used to reconstruct the cache on restart."
    +  [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)
    +        localresources (blobstore-map-to-localresources blobstore-map)]
    +    (if blobstore-map
    +      (.addReferences localizer localresources user topo-name))))
    +
    +(defn rm-topo-files
    +  [conf storm-id localizer rm-blob-refs?]
    +  (let [path (supervisor-stormdist-root conf storm-id)]
    +  (try
    +    (if rm-blob-refs?
    +      (remove-blob-references localizer storm-id conf))
    +    (if (conf SUPERVISOR-RUN-WORKER-AS-USER)
    +      (rmr-as-user conf storm-id path)
    +      (rmr (supervisor-stormdist-root conf storm-id)))
    +    (catch Exception e
    +      (log-message e (str "Exception removing: " storm-id))))))
    +
    +(defn verify-downloaded-files [conf localizer assigned-storm-ids 
all-downloaded-storm-ids]
    +  "Check for the files exists to avoid supervisor crashing
    +   Also makes sure there is no necessity for locking"
    --- End diff --
    
    This is not a docstring: the docstring needs to go before the parameter 
list, and the param list should be on its own line.


---
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.
---

Reply via email to