Details
-
New Feature
-
Status: Resolved
-
Major
-
Resolution: Invalid
-
None
-
None
-
None
Description
This ticket totally eliminates the need for an external service to host the jars. So a url will no longer be required. An external URL leads to unreliability because the service may go offline or it can be DDoSed if/when too many requests are sent to them
Add a jar to cluster as follows
curl -X POST -H 'Content-Type: application/octet-stream' --data-binary @myjar.jar http://localhost:8983/api/cluster/filestore/package?name=myjar.jar
This does the following operations
- Upload this jar to all the live nodes in the system
- The name of the file is the sha256-<name> of the file/payload
- The store is agnostic of the content of the file/payload
How it works?
A blob that is POSTed to the /api/cluster/blob end point is persisted locally & all nodes are instructed to download it from this node or from any other available node. If a node comes up later, it can query other nodes in the system and download the blobs as required
add package command
curl -X POST -H 'Content-type:application/json' --data-binary '{ "add": { "name": "my-package" , "file":{"id" : "<the-sha256>", "sig" : "<signature>"} }}' http://localhost:8983/api/cluster/package
]