Skip to content

Refactor entrypoint logic to one location#219

Merged
Mossaka merged 2 commits intocontainerd:mainfrom
jsturtevant:refactor-wasm-entrypoint
Aug 14, 2023
Merged

Refactor entrypoint logic to one location#219
Mossaka merged 2 commits intocontainerd:mainfrom
jsturtevant:refactor-wasm-entrypoint

Conversation

@jsturtevant
Copy link
Copy Markdown
Contributor

This was part of the code that I was working on when I found #194. I saw it in https://github.com/containerd/runwasi/pull/156/files#diff-94b2ab211987ee0bd5d798ac422f3c3e169b69da929d6684874f72c347671bfeR49 as well so thought we could use it in one location.

There is a test that is marked as [skip] included that could be enabled once #194 is resolved or I can remove it for now.

Mossaka
Mossaka previously approved these changes Aug 2, 2023
}

#[cfg(test)]
mod oci_tests {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice to see more tests were added!

Signed-off-by: James Sturtevant <jstur@microsoft.com>
Signed-off-by: James Sturtevant <jstur@microsoft.com>
@jsturtevant jsturtevant force-pushed the refactor-wasm-entrypoint branch from 7953ea0 to 7d70f40 Compare August 4, 2023 18:15
@jsturtevant
Copy link
Copy Markdown
Contributor Author

I think there could be some refactoring here to improve the way the spec is processed (this function is called a few times) but that can be done in a follow up if that works 👍

if !args.is_empty() {
let start = args[0].clone();
let mut iterator = start.split('#');
let mut cmd = iterator.next().unwrap().to_string();
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess #_start is invalid module name?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a little bit of a discussion in #102 where this was originally introduced.

My understanding is that this is really a runwasi specific seperator and could be anything (:: was suggested at one point). I scanned through https://github.com/WebAssembly/WASI but couldn't find anything that said # is valid or not

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that if this is a runwasi-specific thing, we could actually write down the semantics in how this should work and especially which entrypoint strings are valid and which not. Then we could validate the input string based on that. The benefit would be that other projects could use the same notation and semantics, and we could document the notation also for the users.

For example, should the following strings work (or not):

  1. foo#bar
  2. #bar
  3. foo#bar#bar
  4. foo
  5. #foo#bar
  6. foo#
  7. foo#bar; -- %

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a good idea, are you ok with opening an issue to track this? This particular PR isn't introducing anything new, just moving some code around so we don't have the same logic in several different places.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, added the issue.

Copy link
Copy Markdown
Member

@Mossaka Mossaka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@Mossaka Mossaka merged commit 0ef2a51 into containerd:main Aug 14, 2023
jsturtevant added a commit to jsturtevant/runwasi that referenced this pull request Aug 15, 2023
Signed-off-by: James Sturtevant <jstur@microsoft.com>
jsturtevant added a commit to jsturtevant/runwasi that referenced this pull request Aug 15, 2023
Signed-off-by: James Sturtevant <jstur@microsoft.com>
jsturtevant added a commit to jsturtevant/runwasi that referenced this pull request Aug 15, 2023
Signed-off-by: James Sturtevant <jstur@microsoft.com>
jsturtevant added a commit to jsturtevant/runwasi that referenced this pull request Aug 16, 2023
Signed-off-by: James Sturtevant <jstur@microsoft.com>
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.

3 participants