Skip to content

Instantly share code, notes, and snippets.

@andrewmagill
Created May 23, 2016 23:22
Show Gist options
  • Save andrewmagill/28c01d79f09225acdbe4192ca7623652 to your computer and use it in GitHub Desktop.
Save andrewmagill/28c01d79f09225acdbe4192ca7623652 to your computer and use it in GitHub Desktop.
{
"id": "demo.execute.example.com", # id (string): Unique identifier for this system.
"name": "Demo SGE + GSISSH demo vm", # name (string): Common name for this system.
"status": "UP", # status (string) = ['UP' or 'DOWN' or 'UNKNOWN']: The functional status of this system. Systems must be in UP status to be used.
"type": "EXECUTION", # type (string) = ['EXECUTION' or 'STORAGE']: The type of this system.
"description": "My example system using gsissh and gridftp to submit jobs used for testing.", # description (string, optional): Verbose description of this system.
"site": "example.com", # site (string, optional): The site associated with this system.
"executionType": "HPC", # executionType (string) = ['HPC' or 'CONDOR' or 'CLI']: The execution paradigm used to run jobs on this system.
"queues": [ # queues (List[BatchQueue]): The execution paradigm used to run jobs on this system.
{
"name": "debug", # name (string): The name of the queue.
"maxJobs": 100, # maxJobs (integer, optional): The maximum number of jobs that can be in queue at once.
"maxUserJobs": 10, # maxUserJobs (integer, optional): The maximum number of jobs per user that can be in queue at once.
"maxNodes": 128, # maxNodes (string, optional): The max nodes available per node to jobs submitted to this queue.
"maxMemoryPerNode": "2GB", # maxMemoryPerNode (string, optional): The max memory available per node to jobs submitted to this queue.
"maxProcessorsPerNode": 128, # maxProcessorsPerNode (integer, optional): The max processors per node available to jobs submitted to this queue.
"maxRequestedTime": "24:00:00", # maxRequestedTime (string, optional): The max length of jobs submitted to this queue in hhh:mm:ss format.
"customDirectives": "", # customDirectives (string, optional): Any custom directives that should be appended to scheduler directives. ex. #$ -A TG-
"default": true # isDefault (boolean): Is this the default queue for the system.
}
],
"login": { # login (LoginConfig): The login config defining how to connect to this system for job submission.
"host": "gsissh.example.com", # host (string): The hostname or ip address of the submission server
"port": 2222, # port (integer): The port number of the submission server.
"protocol": "GSISSH", # protocol (String) = ['GSISSH' or 'SSH' or 'LOCAL']: The protocol used to authenticate to the submission server.
"scratchDir": "/scratch", # scratchDir (string, optional): The scratch directory where job execution directories will be created at runtime. The workDir is used if this is not specified.
"workDir": "/work", # workDir (string, optional): The work directory where job execution directories will be created at runtime. This is used if scratchDir is not specified. If neither are specified, the job directory will be created in the system homeDir.
"auth": { # auth (UserCredential): The default authentication credential used for this system.
"username": "demo", # username (string, optional): The local username on the remote system used to authenticate.
"password": "demo", # password (string, optional): The password on the remote system used to authenticate.
"credential": "", # credential (string, optional): The credential used to authenticate to the remote system. Depending on the authentication protocol of the remote system, this could be an OAuth Token, X.509 certificate, Kerberose token, or an private key.
"type": "X509", # type (string) = ['APIKEYS' or 'LOCAL' or 'PAM' or 'PASSWORD' or 'SSHKEYS' or 'TOKEN' or 'X509']: The authentication type.
"server": { # server (UserCredentialServer, optional): The server from which a credential may be obtained.
"id": "myproxy.teragrid.org",
"name": "XSEDE MyProxy Server",
"site": "ncsa.uiuc.edu",
"endpoint": "myproxy.teragrid.org", # endpoint (string): The hostname or ip address of the remote server.
"port": 7512, # port (integer): The port number of the remote server.
"protocol": "MYPROXY" # protocol (String) = ['MYPROXY' or 'MPG']: The protocol used to obtain a credential from the remote server.
}
}
},
"storage": { # storage (StorageConfig): The storage config defining how to connect to this system for data staging.
"host": "gridftp.example.com", # host (string): The hostname or ip address of the storage server
"port": 2811, # port (integer): The port number of the storage server.
"protocol": "GRIDFTP", # protocol (String) = ['AZURE' or 'FTP' or 'GRIDFTP' or 'IRODS' or 'LOCAL' or 'S3' or 'SFTP' or 'SWIFT']: The protocol used to authenticate to the storage server.
"rootDir": "/home/demo", # rootDir (string, optional): The path on the remote system to use as the root for all API requests.
"homeDir": "/", # homeDir (string, optional): The path on the remote system to use as the home directory for all API requests. For cases where the home directory should be dynamically defined, the ${USERNAME} token can be included in the homeDir value to represent the username of the authenticated user. ex. /home/${USERNAME}.
"auth": { # auth (UserCredential): The default authentication credential used for this system.
"username": "demo", # username (string, optional): The local username on the remote system used to authenticate.
"password": "demo", # password (string, optional): The password on the remote system used to authenticate.
"credential": "", # credential (string, optional): The credential used to authenticate to the remote system. Depending on the authentication protocol of the remote system, this could be an OAuth Token, X.509 certificate, Kerberose token, or an private key.
"type": "X509", # type (string) = ['APIKEYS' or 'LOCAL' or 'PAM' or 'PASSWORD' or 'SSHKEYS' or 'TOKEN' or 'X509']: The authentication type.
"server": { # server (UserCredentialServer, optional): The server from which a credential may be obtained.
"id": "myproxy.teragrid.org",
"name": "XSEDE MyProxy Server",
"site": "ncsa.uiuc.edu",
"endpoint": "myproxy.teragrid.org", # endpoint (string): The hostname or ip address of the remote server.
"port": 7512, # port (integer): The port number of the remote server.
"protocol": "MYPROXY" # protocol (String) = ['MYPROXY' or 'MPG']: The protocol used to obtain a credential from the remote server.
}
}
},
"maxSystemJobs": 100, # maxSystemJobs (integer, optional): The maximum number of jobs that can be simultaneously run on the system across all queues.
"maxSystemJobsPerUser": 10, # maxSystemJobsPerUser (integer, optional): The maximum number of jobs that can be simultaneously run on the system across all queues by a single user.
"scheduler": "SGE", # scheduler (string) = ['COBALT' or 'CONDOR' or 'FORK' or 'LOADLEVELER' or 'LSF' or 'MOAB' or 'PBS' or 'SGE' or 'SLURM' or 'TORQUE' or 'UNKNOWN']: The type of scheduled used to run jobs.
"environment": "", # environment (string, optional): Environment variables to set upon login prior to job submission.
"startupScript": "./bashrc" # startupScript (string, optional): Script to be run after login and prior to execution.
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment