mirror of
https://github.com/ceph/ceph
synced 2024-12-25 21:03:31 +00:00
51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
"""
|
|
Parallel and sequential task tester. Not used by any ceph tests, but used to
|
|
unit test the parallel and sequential tasks
|
|
"""
|
|
import logging
|
|
import contextlib
|
|
import time
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
@contextlib.contextmanager
|
|
def task(ctx, config):
|
|
"""
|
|
Task that just displays information when it is create and when it is
|
|
destroyed/cleaned up. This task was used to test parallel and
|
|
sequential task options.
|
|
|
|
example:
|
|
|
|
tasks:
|
|
- sequential:
|
|
- tasktest:
|
|
- id: 'foo'
|
|
- tasktest:
|
|
- id: 'bar'
|
|
- delay:5
|
|
- tasktest:
|
|
|
|
The above yaml will sequentially start a test task named foo and a test
|
|
task named bar. Bar will take 5 seconds to complete. After foo and bar
|
|
have finished, an unidentified tasktest task will run.
|
|
"""
|
|
try:
|
|
delay = config.get('delay', 0)
|
|
id = config.get('id', 'UNKNOWN')
|
|
except AttributeError:
|
|
delay = 0
|
|
id = 'UNKNOWN'
|
|
try:
|
|
log.info('**************************************************')
|
|
log.info('Started task test -- %s' % id)
|
|
log.info('**************************************************')
|
|
time.sleep(delay)
|
|
yield
|
|
|
|
finally:
|
|
log.info('**************************************************')
|
|
log.info('Task test is being cleaned up -- %s' % id)
|
|
log.info('**************************************************')
|
|
|