Install tapipy

   pip3.11 install --prefix /usr/local tapipy==1.7.1 charset_normalizer==3.4.0


Utilities

   TapisAPI.py

   printJsonFile.sh jsonFile

   resetToken.sh


Monitoring


Clients

   createClient.sh clientDefinitionFile [responseFile.json]

   listClients.sh

   deleteClient.sh clientId


Systems

   listSystems.sh

   addSystem.sh definition.json [responseFile.json]

   getSystem.sh systemId [responseFile.json]

   updateSystem.sh definition.json [responseFile.json]

   deleteSystem.sh systemId

   undeleteSystem.sh systemId

   disableSystem.sh systemId

   enableSystem.sh systemId


User Credentials

   createUserCredential.sh systemId userCredentialDefinitionFile [userCredentialDefinitionResponseFile]

   checkUserCredential.sh systemId userName

   getUserCredential.sh systemId userName

   removeUserCredential.sh systemId userName


Scheduler Profiles

   listSchedulerProfiles.sh

   createSchedulerProfile.sh schedulerProfileDefinitionFile [schedulerProfileDefinitionResponseFile]

   getSchedulerProfile.sh schedulerProfileName

   deleteSchedulerProfile.sh schedulerProfileName


Apps

   listApps.sh

   addApp.sh definition.json [responseFile.json]

   getApp.sh appId appVersion [appDefinitionResponseFile]

   updateApp.sh definition.json [responseFile.json]

   deleteApp.sh appId

   undeleteApp.sh appId

   disableApp.sh appId

   enableApp.sh appId


Files and Directories

   listFiles.sh systemId remoteDirectory

   removeFile.sh systemId remoteFilePath

   removeDirectory.sh systemId remoteDirectoryPath

   downloadFile.sh systemId remoteFilePath

   uploadFile.sh localFile storageSystemId remoteDirectory

   copyPath.sh systemId sourceFilePath destinationFilePath

   movePath.sh systemId sourceFilePath destinationFilePath

   makeDirectory.sh systemId existingPath appendedPath


Jobs

   python3.11 uploadJobInputs.py systemId instanceToken jobInputTarPath auxiliaryTarFile [timestampTransferred]

   removeJobInputs.sh systemId instanceToken

   python3.11 submitJob.py definition.tapis [responseFile.json]

   listJobs.sh

   getJobHistory.sh jobId [outputFile]

   getJobStatus.sh instanceToken

   getUserRemoteJobId.sh instanceToken

   getJob.sh instanceToken

   python3.11 killJob.py jobId

   listJobOutputs.sh instanceToken

   downloadJobOutputFile.sh instanceToken jobOutputFile

   downloadJobOutputs.sh instanceToken jobOutputDirectory jobOutputZipfile

   removeJobArchive.sh storageSystemId instanceToken


Create New System:

   - Create Configuration/authenticator.txt  (Contains password)

   - Create Configuration/tapis.conf from Configuration/tapis.conf_dft

   - Create access token
   
       $ ./resetToken.sh

   - Create and set permissions on system "root" directory

       $ mkdir -p      SCRATCH/Tapis3/SUBMITHOST
       $ chmod go-rwsx SCRATCH/Tapis3/SUBMITHOST

   - Create Tapis fork system definition

       $ cp SystemDefinitions/generic_fork.json SystemDefinitions/CLUSTER_fork.json
       $ vi SystemDefinitions/CLUSTER_fork.json
           Fillin values

       $ ./addSystem.sh CLUSTER_fork

   - Create SSH credentials, shared by fork and slurm systems

       $ cd SystemDefinitions
       $ ./createKey.sh CLUSTER
       $ cd ..

       Add public key to USER@CLUSTER authorized_keys file

   - Add SSH credentials to fork system

       $ ./createUserCredential.sh SYSTEMID CLUSTER
       $ ./checkUserCredential.sh SYSTEMID USER

   - Create Job related scratch directories

       $ ./makeDirectory.sh SYSTEMID / Jobs
       $ ./makeDirectory.sh SYSTEMID / JobInputs

   - Create Job archive directory

       $ ./makeDirectory.sh SYSTEMID / Archive

   - Create Tapis slurm system definition

       $ cp SystemDefinitions/generic_slurm.json SystemDefinitions/CLUSTER_slurm.json
       $ vi SystemDefinitions/CLUSTER_slurm.json
           Fillin values
       $ cp SystemDefinitions/slurm_schedulerProfile.json SystemDefinitions/CLUSTER_schedulerProfile.json
       $ vi SystemDefinitions/CLUSTER_schedulerProfile.json
           Fillin values
       $ ./createSchedulerProfile.sh CLUSTER
       $ ./addSystem.sh CLUSTER_slurm

   - Add SSH credentials to slurm system

       $ ./createUserCredential.sh SYSTEMID CLUSTER
       $ ./checkUserCredential.sh SYSTEMID USER

   - Create app Deployment directories

       $ ./makeDirectory.sh SYSTEMID / Apps/generic/generic-slurm/bin
       $ ./makeDirectory.sh SYSTEMID / Apps/generic/generic-fork/bin

   - Create app wrapper scripts

       $ cd AppDefinitions
       $ cp tapisjob_app_fork.sh tapisjob_app.sh
       $ tar cvfz generic_fork_wrapper.tar.gz ./tapisjob_app.sh
       $ cp tapisjob_app_slurm.sh tapisjob_app.sh
       $ tar cvfz generic_slurm_wrapper.tar.gz ./tapisjob_app.sh
       $ rm tapisjob_app.sh 
       $ cd ..

   - Upload app scripts

       $ ./uploadFile.sh AppDefinitions/generic_slurm_wrapper.tar.gz SYSTEMID Apps/generic/generic-slurm/bin
       $ ./uploadFile.sh AppDefinitions/generic_fork_wrapper.tar.gz  SYSTEMID Apps/generic/generic-fork/bin

   - Create Tapis app definitions

       $ cd AppDefinitions
       $ cp generic_fork.json CLUSTER_fork.json
       $ cp generic_serial.json CLUSTER_slurm.json
       $ vi CLUSTER_fork.json CLUSTER_slurm.json
          make EXECUTIONSYSTEM substitution, name, version change as needed.
       $ cd ..

   - Create Tapis apps

       $ ./addApp.sh CLUSTER_slurm
       $ ./addApp.sh CLUSTER_fork

