1f20b9cd8a026723ff11204281d281eac7b06c81dmblighimport os, sys 24205d8965f7fdda6a9c24100be912f36f04a3fc9mblighimport common 361cf6e7a4102ad86dc1ec4d2068232253c47a769jadmanski 4c27c231ee840e8ce97012477ba1f917674375a1ejadmanskifrom autotest_lib.client.common_lib import utils, error, profiler_manager 5edf430c7ce814132b65d826582f139946c032ffambligh 6c69530b170d60b913131a2a65cf0e3c8b81bc700mbligh 7043e1132d1af7969a8f67871188ef34e050c2186jadmanskiclass profilers(profiler_manager.profiler_manager): 8043e1132d1af7969a8f67871188ef34e050c2186jadmanski def load_profiler(self, profiler, args, dargs): 9043e1132d1af7969a8f67871188ef34e050c2186jadmanski prof_dir = os.path.join(self.job.autodir, "profilers", profiler) 10c5ddfd1f71caef9ec0c84c53ef7db42fcdc33e1cmbligh 11c5ddfd1f71caef9ec0c84c53ef7db42fcdc33e1cmbligh try: 1261cf6e7a4102ad86dc1ec4d2068232253c47a769jadmanski self.job.install_pkg(profiler, "profiler", prof_dir) 13c27c231ee840e8ce97012477ba1f917674375a1ejadmanski except error.PackageInstallError: 14c5ddfd1f71caef9ec0c84c53ef7db42fcdc33e1cmbligh pass 15c5ddfd1f71caef9ec0c84c53ef7db42fcdc33e1cmbligh 16c5ddfd1f71caef9ec0c84c53ef7db42fcdc33e1cmbligh if not os.path.exists(prof_dir): 17043e1132d1af7969a8f67871188ef34e050c2186jadmanski raise profiler_manager.ProfilerNotPresentError(profiler) 1861cf6e7a4102ad86dc1ec4d2068232253c47a769jadmanski 1961cf6e7a4102ad86dc1ec4d2068232253c47a769jadmanski profiler_module = common.setup_modules.import_module( 2061cf6e7a4102ad86dc1ec4d2068232253c47a769jadmanski profiler, "autotest_lib.client.profilers.%s" % profiler) 21c5ddfd1f71caef9ec0c84c53ef7db42fcdc33e1cmbligh 229a3717f664b62231dafbcd1dec24ffd7eb743b5cmbligh newprofiler = getattr(profiler_module, profiler)(self.job) 23c5ddfd1f71caef9ec0c84c53ef7db42fcdc33e1cmbligh 240afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski newprofiler.name = profiler 25043e1132d1af7969a8f67871188ef34e050c2186jadmanski newprofiler.bindir = os.path.join(prof_dir) 26c5ddfd1f71caef9ec0c84c53ef7db42fcdc33e1cmbligh newprofiler.srcdir = os.path.join(newprofiler.bindir, 'src') 27c5ddfd1f71caef9ec0c84c53ef7db42fcdc33e1cmbligh newprofiler.tmpdir = os.path.join(self.tmpdir, profiler) 288079ceeb536b330a8de3515f5281e01b1d11ebb1mbligh newprofiler.initialize(*args, **dargs) 290afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski utils.update_version(newprofiler.srcdir, newprofiler.preserve_srcdir, 300afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski newprofiler.version, newprofiler.setup, 310afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski *args, **dargs) 3261cf6e7a4102ad86dc1ec4d2068232253c47a769jadmanski 3361cf6e7a4102ad86dc1ec4d2068232253c47a769jadmanski return newprofiler 34