Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


Warning

You will only be able to do this exercise if you've logged in with a Pawsey user account. Delegate identities are not allowed to create further delegates.

Expand
titleSolution 1
Code Block
iblis:~/dev/mfclient> pshell
Reading config [/Users/sean/.mf_config]
 === pshell: type 'help' for a list of commands ===
pawsey:offline>login
Username: sean
Password: 

pawsey:/projects>whoami
actor = ivec:sean
  role = ivec
  role = user
  role = Data Team:administer


pawsey:/projects>delegate
Delegating until: 30-May-2017 16:31:10

pawsey:/projects>exit
iblis:~/dev/mfclient> pshell
Reading config [/Users/sean/.mf_config]
 === pshell: type 'help' for a list of commands ===

pawsey:/projects>whoami
actor = delegate
  role = ivec:sean
  role = ivec


Exercise 2 - running commands from the shell

Perform the followingRun pshell from the command line to:run pshell from your command promptĀ 

  • check your identity,
  • list the contents of the Data Team/testfiles remote folder,
  • download a single file.
Expand
titleSolution to exercise 2
Code Block
iblis:~> pshell whoami
Reading config [/Users/sean/.mf_config]
actor = delegate
  role = Data Team:readonly
  role = Demo:readwrite
  role = ivec


iblis:~> pshell "ls /projects/Data Team/testfiles"
Reading config [/Users/sean/.mf_config]
31 items, 29 items per page, remote folder: /projects/Data Team/testfiles
 69776098   | online  |     17 KB | i000769.jpg
 69776099   | online  |  17.02 KB | i000765.jpg
 69776100   | online  |  17.69 KB | i000771.jpg
 69776101   | online  |  17.21 KB | i000767.jpg
etc


iblis:~> pshell "get /projects/Data Team/testfiles/i000769.jpg"
Reading config [/Users/sean/.mf_config]
Total files=1, transferring ...  
Progress=100%, rate=0.0 MB/s  Completed.

iblis:~> file Data\ Team/testfiles/i000769.jpg 
Data Team/testfiles/i000769.jpg: JPEG image data


Exercise 3 - script a task to download a file in your directory.

Perform the following:

  • create a text file to change into the Demo/<yourname> directory and download a file
  • use this script as input to pshell
Expand
titleSolution 3

Create a plain text file script1.txt containing:

Code Block
cd Demo/sean
get testfile1

Then do:

Code Block
iblis:~> pshell -i script1.txt
Reading config [/Users/sean/.mf_config]
input> cd Demo/sean

Remote: /projects/Demo/sean
input> get IMG_0009.jpg

Total files=1, transferring ...  
Progress=100%, rate=0.0 MB/s  Completed.

iblis:~> file IMG_0009.jpg 
IMG_0009.jpg: JPEG image data


Exercise 4 - script a task that attempts to perform something that will fail (eg remove a directory that doesn't exist) and correctly reportĀ that the script encountered an error.

Perform the following:

  • write a shell (eg bash) script to run a single pshell command that will fail
  • based on the exit code being 0 if successfull and non 0 on failure, report a problem
Expand
titleSolution 4

Run the following script if you have bash ... sorry Windows users (without WSL.)

Code Block
#!/bin/bash

pshell "rmdir /idontexist"

if [ $? == 0 ]; then
   echo "All good - proceed further!"
else
   echo "Operation failed!"
fi

Which produces:

Code Block
Error from server: The namespace '/idontexist' does not exist or is not accessible
Operation failed!

This would typically be a job script on (eg) Pawsey HPC - where you would be doing all such work in a Linux environment.

The idea is that if something in your data setup pipeline fails - don't waste any valuable cpu time on it.