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

Simplify virtual store #196

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from
Draft

Simplify virtual store #196

wants to merge 4 commits into from

Conversation

robin-nitrokey
Copy link
Member

This patch uses the simplified Store trait to also simplify the store
implementation used by the virt module: Instead of using references to
static storages and filesystems protected by a mutex, we can now just
use separate non-static instances for every test.

The only downside is that we can no longer provide raw access to the
IFS via the StoreProvider::ifs function, so we cannot run the
provisioner app with this platform implementation. But I think this is
an acceptable tradeoff.

This patch simplifies the Store trait by removing the Fs wrapper struct,
the Storage types, the static lifetime and the Copy requirement and
replaces it with a reference to a DynFilesystem.

This gives runners more options on how to implement the store.

As the Store trait can now easily be implemented in a safe way, this
patch also removes the unsafe keyword from the trait definition.
This patch uses the simplified Store trait to also simplify the store
implementation used by the virt module:  Instead of using references to
static storages and filesystems protected by a mutex, we can now just
use separate non-static instances for every test.

The only downside is that we can no longer provide raw access to the
IFS via the StoreProvider::ifs function, so we cannot run the
provisioner app with this platform implementation.  But I think this is
an acceptable tradeoff.
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