示例#1
0
 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()
示例#2
0
    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()