Skip to content
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

Stage local files to an OSDF origin #19

Open
wants to merge 12 commits into
base: main
Choose a base branch
from

Conversation

bbockelm
Copy link

This PR creates a small command line tool to stage a local file to a unique name on a remote OSDF origin. It is meant to be idempotent; that is, it can be run many times and will only upload once as long as the file contents are unchanged.

If you replace the local filename with the generated OSDF URL, the user is guaranteed to get the current copy of the file from the OSDF (as the name is unique) and not a prior one

It is intended to be used with a AP-side job hook launched by the shadow prior to the job being activated. This way, the shadow will upload the file to the origin and the EP will download it via the OSDF.

An example use case would be a user who prefers to update their SIF file in-place -- they would always get the "correct as of time of job launch" version of their SIF.

@bbockelm bbockelm requested a review from djw8605 November 19, 2022 21:43
@bbockelm bbockelm marked this pull request as draft November 21, 2022 00:29
bbockelm added 7 commits May 30, 2023 07:22
When `stashcp` is run with an `osdf://` source without a third slash
(i.e., `osdf://foo/bar` instead of `osdf:///foo/bar`), then the
path fed into the namespace lookup lacked a leading `/` (i.e.,
`foo/bar`) resulting in a failed lookup.
- If MatchNamespaces fails, report it as a process-wide error.
- If no process-wide errors are reported, use the last returned error
  as the error message.
If a prefix is not in a registered namespace, instead of effectively
falling back to a default set of caches, return a failure.

This is meant to provide reasonable error messages when there are
typos in the URL instead of making it look like there's an issue with
the caches.

Here's an example output from `stashcp`:

```
stashcp osdf://typo/staging/bbockelm/foo /dev/null
ERROR[2023-06-03T10:58:53-05:00] Failure downloading osdf://typo/staging/bbockelm/foo: Attempt htcondor#1: OSDF namespace not known for path /typo/staging/bbockelm/foo (100ms since start)
```
With this, end-to-end tests of the staging binary works for a simple
job ad.
@bbockelm bbockelm marked this pull request as ready for review June 11, 2023 02:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant