|
|
| (3 intermediate revisions by 2 users not shown) |
| Line 1: |
Line 1: |
| − | == Slides ==
| + | #REDIRECT[[Swestore Documentation Moved]] |
| − | | |
| − | [[File:Swestore_slides_sem_apr15.pdf]] | |
| − | | |
| − | == Links ==
| |
| − | | |
| − | [http://docs.snic.se/wiki/Swestore General information on SweStore]
| |
| − | | |
| − | [http://docs.snic.se/wiki/Apply_for_storage_on_SweStore Applying for storage]
| |
| − | | |
| − | [http://docs.snic.se/wiki/Grid_certificates#Requesting_a_certificate Applying for certificate]
| |
| − | | |
| − | [http://download.nordugrid.org/repos-13.02.html Installing NorduGrid Client]
| |
| − | | |
| − | == proxy_transfer scripts ==
| |
| − | | |
| − | The following script can be used in conjunction with the installed proxy_use script (installed on Platon and Alarik)
| |
| − | | |
| − | Usage:
| |
| − | | |
| − | <pre>
| |
| − | proxy_upload [hostname] [username]
| |
| − | </pre>
| |
| − | | |
| − | This generates a proxy certificates on your local machine and transfers it to the temp-directory on the remote resource using a unique filename.
| |
| − | | |
| − | On the remote machine:
| |
| − | | |
| − | <pre>
| |
| − | proxy_use
| |
| − | </pre>
| |
| − | | |
| − | This command will look in the /tmp dir for uploaded proxy_certs for your username and rename the file to the standard ARC proxy format.
| |
| − | | |
| − | == proxy_upload (local machine) ==
| |
| − | | |
| − | <pre>#!/bin/bash
| |
| − | | |
| − | if [ $# -ne 2 ]
| |
| − | then
| |
| − | echo "Usage: `basename $0` hostname username"
| |
| − | exit $E_BADARGS
| |
| − | fi
| |
| − | | |
| − | proxyPath=/tmp/x509up_u$UID
| |
| − | | |
| − | echo "Generating proxy certificate."
| |
| − | arcproxy --proxy=$proxyPath
| |
| − | echo
| |
| − | | |
| − | if [ -e $proxyPath ] ; then
| |
| − | echo "Found generated proxy certificate : $proxyPath"
| |
| − | else
| |
| − | echo "Could not find any proxy certificate."
| |
| − | return -1
| |
| − | fi
| |
| − | | |
| − | uuid=`uuidgen`
| |
| − | | |
| − | remoteProxyPath=/tmp/x509_up_$2_$uuid
| |
| − | | |
| − | echo
| |
| − | echo "Uploading proxy certificate to $1."
| |
| − | scp -p -q $proxyPath $2@$1:$remoteProxyPath
| |
| − | | |
| − | echo
| |
| − | echo "-------------------------------------------------------------"
| |
| − | echo "To use the uploaded proxy on $1, issue the"
| |
| − | echo "following command:"
| |
| − | echo
| |
| − | echo "proxy_use"
| |
| − | echo "-------------------------------------------------------------"
| |
| − | echo</pre>
| |
| − | | |
| − | == proxy_use ==
| |
| − | | |
| − | <pre>
| |
| − | #!/bin/env python
| |
| − | | |
| − | import sys, os
| |
| − | | |
| − | from datetime import datetime
| |
| − | | |
| − | tempDir = "/tmp"
| |
| − | | |
| − | def findProxyFiles():
| |
| − | userName = os.environ["LOGNAME"]
| |
| − | allFiles = os.listdir(tempDir)
| |
| − | proxyFiles = []
| |
| − | | |
| − | for dirEntry in allFiles:
| |
| − | fullPath = os.path.join(tempDir, dirEntry)
| |
| − | if os.path.isfile(fullPath):
| |
| − | if fullPath.find("x509_up_%s" % userName)!=-1:
| |
| − | proxyFiles.append(fullPath)
| |
| − | | |
| − | return proxyFiles
| |
| − | | |
| − | | |
| − | | |
| − | if __name__ == "__main__":
| |
| − | | |
| − | stdProxyFilename = os.path.join(tempDir, "x509up_u%s" % os.getuid())
| |
| − | proxyCertExists = False
| |
| − | | |
| − | if os.path.isfile(stdProxyFilename):
| |
| − | print("Proxy certificate %s exists." % stdProxyFilename)
| |
| − | proxyCertExists = True
| |
| − | else:
| |
| − | print("No existing proxy certificate %s found. " % stdProxyFilename)
| |
| − | | |
| − | proxyFiles = findProxyFiles()
| |
| − | proxyDict = {}
| |
| − | | |
| − | for proxyFilename in proxyFiles:
| |
| − | info = os.stat(proxyFilename)
| |
| − | proxyDict[info.st_ctime] = proxyFilename
| |
| − | | |
| − | sortedProxyKeys = proxyDict.keys()
| |
| − | sortedProxyKeys.sort()
| |
| − | sortedProxyKeys.reverse()
| |
| − | | |
| − | if proxyCertExists:
| |
| − | proxyCount = 1
| |
| − | else:
| |
| − | proxyCount = 0
| |
| − | | |
| − | for timeStamp in sortedProxyKeys:
| |
| − | if (proxyCount == 0):
| |
| − | datetime = datetime.fromtimestamp(timeStamp)
| |
| − | os.rename(proxyDict[timeStamp], stdProxyFilename)
| |
| − | print("Created %s from uploaded proxy %s." % (stdProxyFilename, proxyDict[timeStamp]))
| |
| − | else:
| |
| − | print("Removing old uploaded proxy %s." % proxyDict[timeStamp])
| |
| − | os.remove(proxyDict[timeStamp])
| |
| − | proxyCount += 1
| |
| − | | |
| − | if len(proxyFiles) == 0:
| |
| − | print("No uploaded proxy files found. Please upload proxy files using proxy_upload.")
| |
| − | </pre>
| |