def __initialize_pilot_data(self, service_url): # initialize file adaptor # Pilot Data API for File Management if service_url.startswith("ssh:"): logger.debug("Use SSH backend") try: from pilot.filemanagement.ssh_adaptor import SSHFileAdaptor self.__filemanager = SSHFileAdaptor(service_url) except: logger.debug("SSH/Paramiko package not found.") self.__print_traceback() elif service_url.startswith("http:"): logger.debug("Use WebHDFS backend") try: from pilot.filemanagement.webhdfs_adaptor import WebHDFSFileAdaptor self.__filemanager = WebHDFSFileAdaptor(service_url) except: logger.debug("WebHDFS package not found.") elif service_url.startswith("go:"): logger.debug("Use Globus Online backend") try: from pilot.filemanagement.globusonline_adaptor import GlobusOnlineFileAdaptor self.__filemanager = GlobusOnlineFileAdaptor(service_url) except: logger.debug("Globus Online package not found.") self.__print_traceback()
def __initialize_pilot_data(self): if self.pilot_data_description != None: self.service_url = self.pilot_data_description["service_url"] if self.pilot_data_description.has_key("size"): self.size = self.pilot_data_description["size"] # initialize file adaptor if self.service_url.startswith("ssh:"): logger.debug("Use SSH backend") self.__filemanager = SSHFileAdaptor( self.service_url, self.security_context, self.pilot_data_description) elif self.service_url.startswith("http:"): logger.debug("Use WebHDFS backend") self.__filemanager = WebHDFSFileAdaptor(self.service_url) elif self.service_url.startswith("go:"): logger.debug("Use Globus Online backend") self.__filemanager = GlobusOnlineFileAdaptor(self.service_url) elif self.service_url.startswith("gs:"): logger.debug("Use Google Cloud Storage backend") self.__filemanager = GSFileAdaptor(self.service_url, self.security_context) elif self.service_url.startswith("irods:"): logger.debug("Use iRods Storage backend") self.__filemanager = iRodsFileAdaptor(self.service_url, self.security_context) elif self.service_url.startswith("s3:") \ or self.service_url.startswith("walrus:") \ or self.service_url.startswith("swift:"): logger.debug( "Use Amazon S3/Eucalyptus Walrus/SWIFT Storage backend") self.__filemanager = S3FileAdaptor(self.service_url, self.security_context, self.pilot_data_description) else: raise PilotError("No File Plugin found.") self.__filemanager.initialize_pilotdata() self.__filemanager.get_pilotdata_size() # Update security context self.security_context = self.__filemanager.get_security_context()