def __init__(self, pilot_data_service=None, pilot_data_description=None, pd_url=None): """ 1.) create a new Pilot Data: pilot_data_service and pilot_data_description required 2.) reconnect to an existing Pilot Data: pd_url required """ if pd_url==None: self.id = self.PD_ID_PREFIX + str(uuid.uuid1()) self.pilot_data_description = pilot_data_description self.pilot_stores=[] self.url = CoordinationAdaptor.add_pd(pilot_data_service.url, self) self.state = State.New self.data_units = DataUnit.create_data_unit_list(self, self.pilot_data_description["file_urls"]) CoordinationAdaptor.update_pd(self) else: self.id = self.__get_pd_id(pd_url) self.url = pd_url self.__restore_state()