Commit 89bb427e authored by Gao, Shang's avatar Gao, Shang
Browse files

added additional globus methods

parent 9e73f522
Loading
Loading
Loading
Loading
+7.86 KiB

File added.

No diff preview for this file type.

+26 −4
Original line number Diff line number Diff line
@@ -83,11 +83,33 @@ class crossbowGlobus(crossbowBase):
        
        return transfer

    def upload_resource(self):
        pass
    def upload_resource(self,package,resource_path,source_endpoint=olcfatlas,
                        description=None):
        
        #get file info
        _, format = os.path.splitext(resource_path)
        filename = os.path.basename(resource_path)
        directory,_ = os.path.split(resource_path)
        url = "file://CROSSBOW_NFS/%s/%s" % (package,filename)
        r = self.transfer.operation_ls(source_endpoint,path=directory,filter='name:'+filename)
        size = r['DATA'][0]['size']

        #execute transfer
        tdata = globus_sdk.TransferData(self.transfer, source_endpoint, self.cadesdtn,
                                    label="Crossbow Transfer", sync_level="checksum")
        tdata.add_item(source_path,'/data/cades-crossbow/'+package+'/'+filename)
        transfer_result = self.transfer.submit_transfer(tdata)
        print("task_id =", transfer_result["task_id"])
        
        #add file to CKAN
        self.ckan.action.resource_create(
                package_id=package,url=url,name=filename,description=description,
                format=format,size=size)
                
        return transfer_result

    def download_resource(self,package,resource,dest_endpoint=olcfatlas,
                          dest_path='\~\'):
                          dest_path='/~/'):
        '''
        use globus to download the resource to a destination endpoint
        
@@ -160,7 +182,7 @@ class crossbowGlobus(crossbowBase):
          - task_id: string
            id of task to check
        '''
        r = self.transfer.get_task(submit_result[task_id])
        r = self.transfer.get_task(task_id)
        print ("Label:", r["label"])
        print ("Status:", r["status"])
        print ("Transfer: {} -> {}".format(r["source_endpoint_display_name"],
+2 −2
Original line number Diff line number Diff line
@@ -97,7 +97,7 @@ class crossbowMount(crossbowBase):
                    copied += len(buf)
                    callback(copied,size)

    def upload_resource(self,package,resource,resource_path,description=None):
    def upload_resource(self,package,resource_path,description=None):
        '''
        upload a local resource to an existing package
        resource is copied to CROSSBOW_NFS/package/filename
@@ -140,7 +140,7 @@ class crossbowMount(crossbowBase):

        #add file to CKAN
        self.ckan.action.resource_create(
                package_id=package,url=url,name=resource,description=description,
                package_id=package,url=url,name=filename,description=description,
                format=format,size=size)

    def get_resource_path(self,package,resource):