def __restore_state(self): pd_dict = CoordinationAdaptor.get_pd(self.url) self.pilot_data_description = pd_dict["pilot_data_description"] self.state = pd_dict["state"] data_unit_dict_list = pd_dict["data_units"] self.data_units = [DataUnit.create_data_unit_from_dict(i) for i in data_unit_dict_list] self.pilot_stores = [] for i in pd_dict["pilot_stores"]: logger.debug("PS:"+str(i)) ps = PilotStore(ps_url=str(i)) self.pilot_stores.append(ps)
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()
def create_data_unit_from_dict(cls, du_dict): du = DataUnit() logger.debug("Restore DU: " + str(du_dict)) for i in du_dict.keys(): du.__setattr__(i, du_dict[i]) return du