import compute.api import data.api class WorkDataDescription(compute.api.WorkUnitDescription): """ TROY WorkUnitDescription. { 'executable': , 'arguments': , # Arguments 'environment': , # environment variables # Working directory # A pilot data url will be translated to the local pilot store url, e.g. # pilotdata://localhost/c2fafeae-03a9-11e1-9934-109addae22a3' # => # ssh://localhost/tmp/pilotstore//c2fafeae-03a9-11e1-9934-109addae22a3 # # i.e. job is executed in /tmp/pilotstore/c2fafeae-03a9-11e1-9934-109addae22a3 # where file can be accessed using relative paths 'working_directory': , # I/O 'input': , 'error': , 'output': , # Parallelism 'number_of_processes': , 'processes_per_host': , 'threads_per_process': , 'total_core_count': , 'spmd_variation': , # Requirements 'candidate_hosts': [, ...], 'cpu_architecture': , 'total_physical_memory': , 'operating_system_type': , 'total_cpu_time': , 'wall_time_limit': , # Data - input/output data flow for WorkUnit 'input_data': [, ... ], 'output_data': [, ... ] } """ def __setattr__(self, attr, value): self[attr]=value def __getattr__(self, attr): return self[attr] class WorkDataService(compute.api.WorkUnitService, data.api.PilotDataService): """ TROY WorkDataService. The WorkDataService is the application's interface to submit WorkUnits and PilotData/DataUnit to the Pilot-Manager in the P* Model. """ def __init__(self, wds_id=None): """ Create a Work Data Service object. Keyword arguments: wds_id -- Reconnect to an existing WDS (optional). """ pass