-
-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support synchronizing with a custom script / executable #146
Comments
Hello, thanks for opening an issue.
You can use Minio or Ceph, or any other S3 compatible store. You don't have to forcibly use S3. Nevertheless this is a good idea. Rome supports a variety of switches, including:
I have the feeling these should be passed on, just in case. I would be happier if the communication between rome and the "engines" |
For example the scripts can be called with:
as parameters to the script: eg. the script would then:
This would mean that you might not be able to write random stuff to stdout, or the random lines should be prefixed with some escape sequence like |
Forwarding the original args makes sense, as does stdout/stderr.
We have a filestore service (sadly not S3 compatible) that is by default read-only on our VPN or office network, and CI machines are credentialed to write to it. That seemed like the ideal producer/consumer flow, but we need something like this script-runner support to handle it. Another solution could be a transparent pass-through proxy to our internal storage service that emulates the S3 API. That was my original idea but this one seemed a bit cleaner and extensible for other storage solutions, not just my own :) |
Another option that could suit our needs (and maybe others) is simple HTTP GET/PUT/HEAD with optional credentials. In this case, you would provide a base URI, for example
You can assume normal HTTP status codes indicate the success or failure of the request. You can optionally supply a credentials file ( Authorization: my-special-token In our case, we could use that for uploading content on the CI side. |
Great. Now two questions:
I'm asking this in case, you know, it's down to me to work for free (yes, of course I care for the adoption of the project but you know, I have a day job too and just so many hours at night) See my roadmap: https://github.com/blender/Rome/projects/1
How about |
Actually if all you want is to add an headers:
- Authorization Basic: SGVsbG86dGhlcmUK and rome will just add this header |
@blender: I don't have a lot of time at the moment, but if I can find some free time I can look into doing it. I'd need to learn haskell first though :) |
Leaning Haskell is rewarding in itself ;) |
@dflems Thanks to @BalestraPatrick you can now use whatever backend you want. #185 You can try the pre-release at: https://github.com/blender/Rome/releases/tag/v0.22.0.59 |
Until support exists for more storage systems, the only options for using Rome are S3 and the local cache. For security and other reasons, we can't easily use S3 with our current setup. I propose that Rome adds support for synchronizing using a custom script or executable with a well-defined interface. A status code of
0
would indicate success and standardized error codes could indicate other statuses (file not found, etc). This way, people can plug in the script to add support for whatever storage system they want no matter how bespoke or esoteric it may be:Supply
custom-exec
option inRomefile
rome
executes the script to handle actionsTrivial example of a custom HTTP sync script
The text was updated successfully, but these errors were encountered: