From 82a145200f06b393e201a47592557fb3ead75e6c Mon Sep 17 00:00:00 2001 From: Mike Auty Date: Sun, 10 Jan 2016 12:36:28 +0000 Subject: [PATCH] Add in the next tasks for the dep resolver. --- volatility/cli/__init__.py | 12 +++++++++++- volatility/framework/configuration/depresolver.py | 4 ++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/volatility/cli/__init__.py b/volatility/cli/__init__.py index a325b7dce..865b73d00 100644 --- a/volatility/cli/__init__.py +++ b/volatility/cli/__init__.py @@ -39,7 +39,17 @@ class CommandLine(object): # Determine the selected plugin # Resolve the dependencies on that plugin dldr = depresolver.DataLayerDependencyResolver() - print("DEPS RESOLVED", dldr.resolve_dependencies(plugin)) + dependencies = dldr.resolve_dependencies(plugin) + + # TODO: write functions that determine all possible options/requirements for this plugin + # (flatten the tree, treating disjunctions as conjunctions) + + + # TODO: Write functions that walk the tree and produce instances of each of the requirements + # (to allow a registry-like tree of config values that can be populated by the user) + + # TODO: Walk down the tree attempting to fulfil each requirement (recursive) and backtrack when necessary + # Translate the parsed args to a context configuration diff --git a/volatility/framework/configuration/depresolver.py b/volatility/framework/configuration/depresolver.py index a29c0a93f..8df842278 100644 --- a/volatility/framework/configuration/depresolver.py +++ b/volatility/framework/configuration/depresolver.py @@ -63,6 +63,10 @@ class DataLayerDependencyResolver(validity.ValidityRoutines): fulfillment[requirement.name] = requirement return fulfillment + def all_possible_requirements(self, deptree): + + + class Possibility(dict): """Class to differentiate between different available options for completion of a requirement"""