| # Copyright 2013 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import file_verifier |
| import process_verifier |
| import registry_verifier |
| |
| |
| class VerifierRunner: |
| """Runs all Verifiers.""" |
| |
| def __init__(self): |
| """Constructor.""" |
| # TODO(sukolsak): Implement other verifiers |
| self._verifiers = { |
| 'Files': file_verifier.FileVerifier(), |
| 'Processes': process_verifier.ProcessVerifier(), |
| 'RegistryEntries': registry_verifier.RegistryVerifier(), |
| } |
| |
| def VerifyAll(self, property, variable_expander): |
| """Verifies that the current machine states match the property dictionary. |
| |
| A property dictionary is a dictionary where each key is a verifier's name |
| and the associated value is the input to that verifier. For details about |
| the input format for each verifier, take a look at http://goo.gl/1P85WL |
| |
| Args: |
| property: A property dictionary. |
| variable_expander: A VariableExpander object. |
| """ |
| for verifier_name, verifier_input in property.iteritems(): |
| if verifier_name not in self._verifiers: |
| raise KeyError('Unknown verifier %s' % verifier_name) |
| self._verifiers[verifier_name].VerifyInput(verifier_input, |
| variable_expander) |