Exemple #1
0
 def __init__(self, pilot_data_service=None, pilot_data_description=None, pd_url=None):    
     """ 
         Initialize PilotData at given service url:
         
         ssh://<hostname>
         gsissh://<hostname>
         
         Currently only ssh schemes are supported. In the future all 
         SAGA URL schemes/adaptors should be supported.        
     """ 
     self.id = None
     self.url = None
     self.pilot_data_description = None
     self.service_url=None
     self.size = None
     self.data_unit_description = None
     self.data_units={}
     
     if pd_url==None and pilot_data_service!=None:      # new pd          
         self.id = self.PD_ID_PREFIX+str(uuid.uuid1())
         self.pilot_data_description = pilot_data_description
         self.url = CoordinationAdaptor.add_pd(CoordinationAdaptor.get_base_url(application_id)+"/"+pilot_data_service.id, self)
     elif pd_url != None:
         logger.warn("Reconnect to PilotData: %s"%pd_url)
         dictionary = CoordinationAdaptor.get_pd(pd_url)
         pd_dict = dictionary["pilot_data"]
         for i in pd_dict:
             self.__setattr__(i, pd_dict[i])
                     
     self.initialize_pilot_data()
Exemple #2
0
    def create_pilot(self, pilot_data_description):
        """ Create a PilotData 

            Keyword arguments:
            pilot_data_description -- PilotData Description    
            {
                'service_url': "ssh://<hostname>/base-url/"                
                'size': "1000"
            }
            Return value:
            A PilotData handle
        """
        pd = PilotData(pilot_data_service=self, 
                        pilot_data_description=pilot_data_description)
        self.pilot_data[pd.id]=pd
        
        # store pilot data in central data space
        CoordinationAdaptor.add_pd(self.url, pd)        
        return pd
Exemple #3
0
 def __init__(self, pilot_data_service=None, data_unit_description=None, pd_url=None):
     """
         1.) create a new Pilot Data: pilot_data_service and data_unit_description required
         2.) reconnect to an existing Pilot Data: pd_url required 
         
     """
     if pd_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_pd(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_pd(self)
     else:
         self.id = self.__get_pd_id(pd_url)
         self.url = pd_url            
         self.__restore_state()