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

Tests: Refactor and clean up JailerContext class #5018

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

Conversation

pb8o
Copy link
Contributor

@pb8o pb8o commented Jan 29, 2025

Changes

In the integration tests support classes, the Jailer and the Microvm are very coupled, and the logic is spread over the two classes with things like screen support directly in the Microvm class.

This change cleanly separates the Jailer(s) and extracts the screen handling into a new handler, JailerScreen.

There's some other simplifications of the Microvm class for example avoiding creating files in two different places.

Reason

Simplifying the support classes so they can be re-used in other contexts.

License Acceptance

By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache 2.0 license. For more information on following Developer
Certificate of Origin and signing off your commits, please check
CONTRIBUTING.md.

PR Checklist

  • I have read and understand CONTRIBUTING.md.
  • I have run tools/devtool checkstyle to verify that the PR passes the
    automated style checks.
  • I have described what is done in these changes, why they are needed, and
    how they are solving the problem in a clear and encompassing way.
  • I have updated any relevant documentation (both in code and in the docs)
    in the PR.
  • I have mentioned all user-facing changes in CHANGELOG.md.
  • If a specific issue led to this PR, this PR closes the issue.
  • When making API changes, I have followed the
    Runbook for Firecracker API changes.
  • I have tested all new and changed functionalities in unit tests and/or
    integration tests.
  • I have linked an issue to every new TODO.

  • This functionality cannot be added in rust-vmm.

pb8o added 3 commits January 29, 2025 11:36
- make the jailer base class generic
- move `screen` bits to a special purpose "jailer"

Abstract the idea of the jailer into a Runner. The idea is that we can
create different runner modes for different cases. For example we in
this commit we have the jailer and screen+jailer, but we could extend it
to others, like not using the Firecracker jailer at all.

Signed-off-by: Pablo Barbáchano <[email protected]>
Currently the dir structure looks like:

    /srv/.../microvm-dir/chroot

and we tend to create files in microvm-dir and then hardlink them into
the chroot dir.

While we are simplifying it, also do away with chroot/path/fsfiles and
convert more strings to `Path`.

Signed-off-by: Pablo Barbáchano <[email protected]>
Now the function always tries to do the right thing.

Signed-off-by: Pablo Barbáchano <[email protected]>
@pb8o pb8o added Priority: Low Indicates that an issue or pull request should be resolved behind issues or pull requests labelled ` python Pull requests that update Python code labels Jan 29, 2025
@pb8o pb8o self-assigned this Jan 29, 2025
@pb8o pb8o added the Status: Awaiting author Indicates that an issue or pull request requires author action label Jan 29, 2025
Copy link

codecov bot commented Jan 29, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 83.13%. Comparing base (0d2713b) to head (620b6e8).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #5018   +/-   ##
=======================================
  Coverage   83.13%   83.13%           
=======================================
  Files         245      245           
  Lines       26697    26697           
=======================================
  Hits        22194    22194           
  Misses       4503     4503           
Flag Coverage Δ
5.10-c5n.metal 83.60% <ø> (ø)
5.10-m5n.metal 83.58% <ø> (-0.01%) ⬇️
5.10-m6a.metal 82.79% <ø> (+<0.01%) ⬆️
5.10-m6g.metal 79.56% <ø> (ø)
5.10-m6i.metal 83.57% <ø> (-0.01%) ⬇️
5.10-m7g.metal 79.56% <ø> (ø)
6.1-c5n.metal 83.60% <ø> (+<0.01%) ⬆️
6.1-m5n.metal 83.58% <ø> (-0.01%) ⬇️
6.1-m6a.metal 82.79% <ø> (ø)
6.1-m6g.metal 79.55% <ø> (-0.01%) ⬇️
6.1-m6i.metal 83.58% <ø> (+<0.01%) ⬆️
6.1-m7g.metal 79.56% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority: Low Indicates that an issue or pull request should be resolved behind issues or pull requests labelled ` python Pull requests that update Python code Status: Awaiting author Indicates that an issue or pull request requires author action
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant