Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Side by Side Diff: tools/telemetry/catapult_base/dependency_manager.py

Issue 1280903003: Add dependency_manager initialization to binary_manager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5
6 class UnsupportedConfigFormatError(ValueError):
7 def __init__(self, config_type, config_file):
8 if not config_type:
9 message = ('The json file at %s is unsupported by the dependency_manager '
10 'due to no specified config type' % config_file)
11 else:
12 message = ('The json file at %s has config type %s, which is unsupported '
13 'by the dependency manager.' % (config_file, config_type))
14 super(UnsupportedConfigFormatError, self).__init__(message)
15
16
17 class EmptyConfigError(ValueError):
18 def __init__(self, file_path):
19 super(EmptyConfigError, self).__init__('Empty config at %s.' % file_path)
20
21
22 class ConfigConflictError(Exception):
23 def __init__(self, config_files, conflict):
24 super(ConfigConflictError, self).__init__(
25 'Multiple definitions of %s found in given config files: %s .'
26 'Only overrides of local_path are allowed.' % (config_files, conflict))
27
28
29 class FileNotFoundError(Exception):
30 def __init__(self, file_path):
31 super(FileNotFoundError, self).__init__('No file found at %s' % file_path)
32
33
34 class NoPathFoundError(FileNotFoundError):
35 def __init__(self, dependency, platform, arch):
36 super(NoPathFoundError, self).__init__(
37 'No file could be found locally, and no file to download from cloud '
38 'storage for %s on platform %s and arch %s' % (dependency, platform,
39 arch))
40
41
42 class DependencyManager(object):
43 def __init__(self, config_files):
44 pass
45
46 def FetchPath(self, dependency, platform, arch):
47 """Find the given dependency in the locations given in configs.
48
49 Return a path to the appropriate executable for <dependency>,
50 downloading from cloud storage if needed, or None if it cannot be found.
51 """
52 raise NotImplementedError
53
54 def LocalPath(self, dependency, platform, arch):
55 """Get a local version of the dependency from locations given in configs.
56
57 Return a local path to the given dependency name, or None if an
58 executable cannot be found. Will not download the executable.
59 """
60 raise NotImplementedError
61
62 def UpdateCloudStorageDependency(
63 self, dependency, platform, arch, version=None):
64 """Update the cloud storage hash and the version for the given dependency.
65 """
66 raise NotImplementedError
67
68 def GetVersion(self, dependency, platform, arch):
69 """Return the Version information for the given dependency.
70 """
71 raise NotImplementedError
72
73 def _UpdateDependencies(self, config_file):
74 raise NotImplementedError
75
76 def _GetDependencyInfo(self, dependency, platform, arch):
77 raise NotImplementedError
78
79 @staticmethod
80 def _LocalPath(dependency_info):
81 raise NotImplementedError
82
83 @staticmethod
84 def _CloudStoragePath(dependency_info):
85 raise NotImplementedError
86
OLDNEW
« no previous file with comments | « no previous file | tools/telemetry/telemetry/benchmark_runner.py » ('j') | tools/telemetry/telemetry/benchmark_runner.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698