def __init__(self, pilot_data_service=None, data_unit_description=None, du_url=None): """ 1.) create a new Pilot Data: pilot_data_service and data_unit_description required 2.) reconnect to an existing Pilot Data: du_url required """ if du_url==None: self.id = self.DU_ID_PREFIX + str(uuid.uuid1()) self.data_unit_description = data_unit_description self.pilot_data=[] self.url = CoordinationAdaptor.add_du(pilot_data_service.url, self) self.state = State.New self.data_unit_items = DataUnitItem.create_data_unit_list(self, self.data_unit_description["file_urls"]) CoordinationAdaptor.update_du(self) else: self.id = self.__get_du_id(du_url) self.url = du_url logger.debug("Restore du: %s"%self.id) self.__restore_state() self.transfer_threads=[]