From: Ondrej Lichtner <olichtne(a)redhat.com>
Since PerfRepo support is now dependent on an external library it should
be an optional dependency so that it doesn't crash LNST if the user is
not using PerfRepo.
Signed-off-by: Ondrej Lichtner <olichtne(a)redhat.com>
---
lnst/Controller/Task.py | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/lnst/Controller/Task.py b/lnst/Controller/Task.py
index 19499da..3903746 100644
--- a/lnst/Controller/Task.py
+++ b/lnst/Controller/Task.py
@@ -13,9 +13,6 @@ rpazdera(a)redhat.com (Radek Pazdera)
import hashlib
import re
import logging
-from perfrepo import PerfRepoRESTAPI
-from perfrepo import PerfRepoTestExecution
-from perfrepo import PerfRepoValue
from lnst.Common.Utils import dict_to_dot, list_to_dot, deprecated
from lnst.Common.Config import lnst_config
from lnst.Controller.XmlTemplates import XmlTemplateError
@@ -23,6 +20,15 @@ from lnst.Common.Path import Path
from lnst.Controller.PerfRepoMapping import PerfRepoMapping
from lnst.Common.Utils import Noop
+try:
+ from perfrepo import PerfRepoRESTAPI
+ from perfrepo import PerfRepoTestExecution
+ from perfrepo import PerfRepoValue
+except:
+ PerfRepoRESTAPI = None
+ PerfRepoTestExecution = None
+ PerfRepoValue = None
+
# The handle to be imported from each task
ctl = None
@@ -544,7 +550,12 @@ class PerfRepoAPI(object):
return False
def connect(self, url, username, password):
- self._rest_api = PerfRepoRESTAPI(url, username, password)
+ if PerfRepoRESTAPI is not None:
+ self._rest_api = PerfRepoRESTAPI(url, username, password)
+ if not self._rest_api.connected():
+ self._rest_api = None
+ else:
+ self._rest_api = None
def new_result(self, mapping_key, name, hash_ignore=[]):
if not self.connected():
--
2.6.3