本文整理汇总了Python中apache.thermos.common.path.TaskPath.with_filename方法的典型用法代码示例。如果您正苦于以下问题:Python TaskPath.with_filename方法的具体用法?Python TaskPath.with_filename怎么用?Python TaskPath.with_filename使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类apache.thermos.common.path.TaskPath
的用法示例。
在下文中一共展示了TaskPath.with_filename方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_simple_process
# 需要导入模块: from apache.thermos.common.path import TaskPath [as 别名]
# 或者: from apache.thermos.common.path.TaskPath import with_filename [as 别名]
def test_simple_process():
with temporary_dir() as td:
taskpath = TaskPath(root=td, task_id='task', process='process', run=0)
sandbox = setup_sandbox(td, taskpath)
p = TestProcess('process', 'echo hello world', 0, taskpath, sandbox)
p.start()
rc = wait_for_rc(taskpath.getpath('process_checkpoint'))
assert rc == 0
stdout = taskpath.with_filename('stdout').getpath('process_logdir')
assert os.path.exists(stdout)
with open(stdout, 'r') as fp:
assert fp.read() == 'hello world\n'
示例2: test_log_permissions
# 需要导入模块: from apache.thermos.common.path import TaskPath [as 别名]
# 或者: from apache.thermos.common.path.TaskPath import with_filename [as 别名]
def test_log_permissions():
with temporary_dir() as td:
taskpath = TaskPath(root=td, task_id='task', process='process', run=0)
sandbox = setup_sandbox(td, taskpath)
p = TestProcess('process', 'echo hello world', 0, taskpath, sandbox)
p.start()
rc = wait_for_rc(taskpath.getpath('process_checkpoint'))
stdout = taskpath.with_filename('stdout').getpath('process_logdir')
stderr = taskpath.with_filename('stderr').getpath('process_logdir')
assert os.path.exists(stdout)
assert os.path.exists(stderr)
assert os.stat(stdout).st_uid == os.getuid()
assert os.stat(stderr).st_uid == os.getuid()
示例3: test_log_permissions_other_user
# 需要导入模块: from apache.thermos.common.path import TaskPath [as 别名]
# 或者: from apache.thermos.common.path.TaskPath import with_filename [as 别名]
def test_log_permissions_other_user(*mocks):
with temporary_dir() as td:
some_user = get_other_nonroot_user()
taskpath = TaskPath(root=td, task_id='task', process='process', run=0)
sandbox = setup_sandbox(td, taskpath)
p = TestProcess('process', 'echo hello world', 0, taskpath, sandbox, user=some_user.pw_name)
p.start()
rc = wait_for_rc(taskpath.getpath('process_checkpoint'))
# since we're not actually root, the best we can do is check the right things were attempted
stdout = taskpath.with_filename('stdout').getpath('process_logdir')
stderr = taskpath.with_filename('stderr').getpath('process_logdir')
assert os.path.exists(stdout)
assert os.path.exists(stderr)
assert os.chown.calledwith(stdout, some_user.pw_uid, some_user.pw_gid)
assert os.chown.calledwith(stderr, some_user.pw_uid, some_user.pw_gid)
示例4: TaskDetector
# 需要导入模块: from apache.thermos.common.path import TaskPath [as 别名]
# 或者: from apache.thermos.common.path.TaskPath import with_filename [as 别名]
class TaskDetector(object):
"""
Helper class in front of TaskPath to detect active/finished/running tasks. Performs no
introspection on the state of a task; merely detects based on file paths on disk.
"""
class MatchingError(Exception): pass
def __init__(self, root):
self._root_dir = root
self._pathspec = TaskPath()
def get_task_ids(self, state=None):
paths = glob.glob(self._pathspec.given(root=self._root_dir,
task_id="*",
state=state or '*')
.getpath('task_path'))
path_re = re.compile(self._pathspec.given(root=re.escape(self._root_dir),
task_id="(\S+)",
state='(\S+)')
.getpath('task_path'))
for path in paths:
try:
task_state, task_id = path_re.match(path).groups()
except:
continue
if state is None or task_state == state:
yield (task_state, task_id)
def get_process_runs(self, task_id, log_dir):
paths = glob.glob(self._pathspec.given(root=self._root_dir,
task_id=task_id,
log_dir=log_dir,
process='*',
run='*')
.getpath('process_logdir'))
path_re = re.compile(self._pathspec.given(root=re.escape(self._root_dir),
task_id=re.escape(task_id),
log_dir=log_dir,
process='(\S+)',
run='(\d+)')
.getpath('process_logdir'))
for path in paths:
try:
process, run = path_re.match(path).groups()
except:
continue
yield process, int(run)
def get_process_logs(self, task_id, log_dir):
for process, run in self.get_process_runs(task_id, log_dir):
for logtype in ('stdout', 'stderr'):
path = (self._pathspec.with_filename(logtype).given(root=self._root_dir,
task_id=task_id,
log_dir=log_dir,
process=process,
run=run)
.getpath('process_logdir'))
if os.path.exists(path):
yield path
def get_checkpoint(self, task_id):
return self._pathspec.given(root=self._root_dir, task_id=task_id).getpath('runner_checkpoint')
def get_process_checkpoints(self, task_id):
matching_paths = glob.glob(self._pathspec.given(root=self._root_dir,
task_id=task_id,
process='*')
.getpath('process_checkpoint'))
path_re = re.compile(self._pathspec.given(root=re.escape(self._root_dir),
task_id=re.escape(task_id),
process='(\S+)')
.getpath('process_checkpoint'))
for path in matching_paths:
try:
process, = path_re.match(path).groups()
except:
continue
yield path