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

Create Turbinia API processor modules #720

Closed
jleaniz opened this issue Feb 7, 2023 · 2 comments
Closed

Create Turbinia API processor modules #720

jleaniz opened this issue Feb 7, 2023 · 2 comments
Assignees

Comments

@jleaniz
Copy link
Collaborator

jleaniz commented Feb 7, 2023

Create new processor modules to integrate dftimewolf with Turbinia using Turbinia's new API server.

@jleaniz jleaniz self-assigned this Feb 7, 2023
@jleaniz
Copy link
Collaborator Author

jleaniz commented Feb 7, 2023

General approach will be to use the turbinia-api-lib library to make API calls to the Turbinia API server and keep dependencies to a minimum.

As a first step, I intend to create new processor modules instead of ripping and replacing the existing ones to provide backwards compatibility for existing clients/users. One idea is to expose a flag in the recipes that use Turbinia modules to indicate whether the new or current/existing client would be used.

This will allow us to easily switch clients if needed. The only drawback is that we willl not be able to immediately removeturbinia or the various GCP packages pinning from the dependencies. That would be possible once we deprecate the current Turbinia client and dftimewolf turbinia processors.

@tomchop thoughts?

@tomchop
Copy link
Collaborator

tomchop commented Feb 8, 2023

One idea is to expose a flag in the recipes that use Turbinia modules to indicate whether the new or current/existing client would be used.

This wouldn't work, as flags can't really decide which module is used - you'd have to create a module which uses the two clients and choses which one to use depending on the flag (which defeats the purpose of not having to import legacy modules).

At this point I think that we're getting more brekages because of the existence of the legacy turbinia client than what we would get if we decided to migrate everything at once. (see #660) I'd suggest we move forwrad and default to the new Turbinia API for all Turbinia modules.

To preserve backwards compatibility for users who have a working setup with the old turbinia modules, we can rename existing recipes to something like _legacy and keep the old Turbinia modules in the codebase with a deprecation note. Additionally, we can tweak pyproject.toml to add an extras section for the old turbinia modules: https://python-poetry.org/docs/pyproject/#extras

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

No branches or pull requests

2 participants