-
Notifications
You must be signed in to change notification settings - Fork 6
Add pod-job model #43
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
Conversation
src/model.rs
Outdated
| pub hash: String, | ||
| /// Details about the pod from which the pod job was created from | ||
| pub pod: Pod, | ||
| input_volume_map: BTreeMap<PathBuf, PathBuf>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
File hash -> stream key. Bring this up for dicussion tomrrow.
Perhaps need to implement input / store first.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A summary from our discussion yesterday is that your implementation of the current design is great and accurate here, however, I have some doubts about our design.
Mainly, feel that:
Inputmodel should be implemented first (or with this PR) so thatPodJobcan have a reference to it (like howPodJobrefers to aPod).- A stream's key doesn't seem to be referenced in
PodJob. That way less things would break if there are updates to the associatedPod.
Oh, and please update your linked issues and the project board to reflect the current status of the issues you are working on.
|
Summary of changes:
|
Synicix
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Old review
src/model.rs
Outdated
| pub fn get_store(&self) -> Result<impl FileStore> { | ||
| // Load the yaml into a Btreemap, pull out the class, then build the store | ||
|
|
||
| let storage_class_name = self.uri.split("::").collect::<Vec<&str>>()[0]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
change it to // instead of ;:
Synicix
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Notes from meeting
src/store/mod.rs
Outdated
| } | ||
|
|
||
| /// Trait to be implemented by file stores | ||
| pub trait FileStore: Sized { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change name to data store
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
src/store/mod.rs
Outdated
| /// Standard behavior of any store backend supported. | ||
| pub trait Store { | ||
| /// How a pod is stored. | ||
| pub trait ModelStore: Sized { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add filestore as a trait dependency
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixe
tests/model.rs
Outdated
| Ok(()) | ||
| } | ||
|
|
||
| #[test] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add data store trait tests
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Defer till orchestrator
|
Changes made, ready for review @eywalker @guzman-raphael |
…d order and update `hash` to be used in more contexts.
…user data in `{store_directory}/orcapod_data`, and update tests to reflect our use-case example from Stanford 11/2024 trip.
…, add pod deserializer based on default, add clone support for models to give greater flexibility in tests, add minimal pod job model, change output of `load_model` to allow caller to control how to set fields, allow new min ident, (for now) add `anyhow` as dev-dependency to get stack trace when debugging, fix bug in `list` call in `basic_test`, and add new `pod_job` tests.
…et backtrace to display by default in DevContainer/GHA, and defer default user data subdirectory creation to orchestrator (i.e. later).
…hecksums, enable `todo!` for some untested cases, add user data for tests that need it, and update tests.
…ve unneeded error handling, rename `find_annotation` -> `find_model_metadata` to account for `spec.yaml` search, simplify, and update tests.
Apply review suggestions (going to edit the tests)
Added pod job, InputStoreMapping, Input, StorePointer, and OutputStorePointer.
Update issue #11 to explained design choices found in this pull request