blob: ace2177200c4c8ea4615ecdc4f250102d0a8be87 [file] [log] [blame]
kelvin-onlab54400a92015-02-26 18:05:51 -08001#!/usr/bin/env python
kelvin-onlab54400a92015-02-26 18:05:51 -08002
Jeremy Ronquillo4d5f1d02017-10-13 20:23:57 +00003'''
4Copyright 2015 Open Networking Foundation (ONF)
Jeremy Ronquillob27ce4c2017-07-17 12:41:28 -07005
6Please refer questions to either the onos test mailing list at <onos-test@onosproject.org>,
7the System Testing Plans and Results wiki page at <https://wiki.onosproject.org/x/voMg>,
8or the System Testing Guide page at <https://wiki.onosproject.org/x/WYQg>
9
10 TestON is free software: you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation, either version 2 of the License, or
Jeremy Ronquillo4d5f1d02017-10-13 20:23:57 +000013 (at your option) any later version.
Jeremy Ronquillob27ce4c2017-07-17 12:41:28 -070014
15 TestON is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with TestON. If not, see <http://www.gnu.org/licenses/>.
Jeremy Ronquillo4d5f1d02017-10-13 20:23:57 +000022'''
Jeremy Ronquillob27ce4c2017-07-17 12:41:28 -070023import threading
Jon Hall65844a32015-03-09 19:09:37 -070024
Jon Hall22a3bcf2021-07-23 11:40:11 -070025
Jon Hall65844a32015-03-09 19:09:37 -070026class Thread( threading.Thread ):
27 def __init__( self, target=None, threadID=None, name="", args=(),
28 kwargs={} ):
29 super( Thread, self ).__init__()
kelvin-onlab54400a92015-02-26 18:05:51 -080030 self.threadID = threadID
31 self.name = name
32 self.target = target
33 self.args = args
34 self.kwargs = kwargs
35 self.result = None
36
37 def run( self ):
38 try:
39 if self.target is not None:
Jon Hall65844a32015-03-09 19:09:37 -070040 self.result = self.target( *self.args, **self.kwargs )
kelvin-onlab54400a92015-02-26 18:05:51 -080041 except Exception as e:
Jon Hall22a3bcf2021-07-23 11:40:11 -070042 tClass = getattr( self.target, 'im_class', None )
43 tFunc = getattr( self.target, 'im_func', None )
44 if tClass:
45 tName = "%s.%s" % ( tClass, tFunc )
46 else:
47 tName = tFunc
Jeremy Ronquillo696f4262017-10-17 10:56:26 -070048 print "ThreadID:" + str( self.threadID ) + ", Name:" + \
49 self.name + "- something went wrong with " + \
Jon Hall22a3bcf2021-07-23 11:40:11 -070050 str( tName ) + " method: "
kelvin-onlab54400a92015-02-26 18:05:51 -080051 print e