|
|
Line 1: |
Line 1: |
− | [[Category:Swestore]] | + | #REDIRECT[[Swestore Documentation Moved]] |
− | [[Category:Swestore user guide]]
| |
− | | |
− | = Slides =
| |
− | | |
− | [[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]
| |
− | | |
− | [http://youtu.be/I-tNFvSIaRU Video - Generating a Terena certificate]
| |
− | | |
− | [http://youtu.be/E9D24PZDK_k Video – Exporting Terena Certificate - Part 1]
| |
− | | |
− | [http://youtu.be/jDq774WeF_Y Video – Exporting Terena Certificate - Part 2]
| |
− | | |
− | [http://arc-gui-clients.sourceforge.net/ ARC Storage Explorer]
| |
− | | |
− | = 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 (on remote machine) ==
| |
− | | |
− | Available on Platon and Alarik
| |
− | | |
− | <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>
| |