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

Unified Diff: tools/telemetry/telemetry/internal/util/binary_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 side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/internal/util/binary_manager.py
diff --git a/tools/telemetry/telemetry/internal/util/binary_manager.py b/tools/telemetry/telemetry/internal/util/binary_manager.py
index bfa2c2c014916d81503a7d6fde30ff064543222f..c661e04a69c5ed914568c882accafdb1946b3873 100644
--- a/tools/telemetry/telemetry/internal/util/binary_manager.py
+++ b/tools/telemetry/telemetry/internal/util/binary_manager.py
@@ -2,18 +2,60 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+#TODO(aiolos): Remove the debug logging once the entire Dependency Manager
+#system has landed.
+import logging
+import os
+
from catapult_base import support_binaries
+from catapult_base import dependency_manager
+from telemetry.core import util
+
+
+class InitializationError(Exception):
+ def __init__(self, string):
+ super(InitializationError, self).__init__(string)
+
+
+TELEMETRY_PROJECT_CONFIG = os.path.join(
+ util.GetTelemetryDir(), 'telemetry', 'internal', 'binary_dependencies.json')
nednguyen 2015/08/10 17:01:10 Did you already add this file?
aiolos (Not reviewing) 2015/08/10 20:37:27 Not yet. We don't actually do anything with the fi
+
+_dependency_manager = None
+
+def InitDependencyManagerForUnittests():
+ if not _dependency_manager:
+ InitDependencyManager(None)
+def InitDependencyManager(environment_config):
eakuefner 2015/08/10 17:07:03 nit: two newlines between top-level definitions.
aiolos (Not reviewing) 2015/08/10 20:37:27 Done.
+ global _dependency_manager
+ if _dependency_manager:
+ raise InitializationError('Trying to re-initialize the binary manager with '
+ 'config %s' % environment_config)
+ config_files = [TELEMETRY_PROJECT_CONFIG]
+ if environment_config:
+ config_files.append(environment_config)
+ _dependency_manager = dependency_manager.DependencyManager(config_files)
+ logging.debug('Initialized the dependency manager.')
nednguyen 2015/08/10 17:01:10 This log should come before the dependency_manager
aiolos (Not reviewing) 2015/08/10 20:37:27 That's actually why I wanted it after. I've cared
def FetchPath(binary_name, platform, arch):
""" Return a path to the appropriate executable for <binary_name>, downloading
from cloud storage if needed, or None if it cannot be found.
"""
+ logging.debug('Called FetchPath for binary: %s on platform: %s and arch: '
+ '%s' % (binary_name, platform, arch))
+ if _dependency_manager is None:
+ raise InitializationError(
+ 'Called FetchPath with uninitialized binary manager.')
return support_binaries.FindPath(binary_name, platform, arch)
def LocalPath(binary_name, platform, arch):
""" Return a local path to the given binary name, or None if an executable
cannot be found. Will not download the executable.
"""
+ logging.debug('Called LocalPath for binary: %s on platform: %s and arch: '
+ '%s' % (binary_name, platform, arch))
+ if _dependency_manager is None:
+ raise InitializationError(
+ 'Called LocalPath with uninitialized binary manager.')
del platform, arch
return support_binaries.FindLocallyBuiltPath(binary_name)

Powered by Google App Engine
This is Rietveld 408576698