mescal

A Clojure client library for the Agave API.

License

License

BSD Standard License
Categories

Categories

Ant Build Tools
GroupId

GroupId

org.iplantc
ArtifactId

ArtifactId

mescal
Last Version

Last Version

0.1.0
Release Date

Release Date

Type

Type

jar
Description

Description

mescal
A Clojure client library for the Agave API.
Project URL

Project URL

https://github.com/iPlantCollaborativeOpenSource/mescal
Source Code Management

Source Code Management

https://github.com/iPlantCollaborativeOpenSource/mescal

Download mescal

How to add to project

<!-- https://jarcasting.com/artifacts/org.iplantc/mescal/ -->
<dependency>
    <groupId>org.iplantc</groupId>
    <artifactId>mescal</artifactId>
    <version>0.1.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.iplantc/mescal/
implementation 'org.iplantc:mescal:0.1.0'
// https://jarcasting.com/artifacts/org.iplantc/mescal/
implementation ("org.iplantc:mescal:0.1.0")
'org.iplantc:mescal:jar:0.1.0'
<dependency org="org.iplantc" name="mescal" rev="0.1.0">
  <artifact name="mescal" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.iplantc', module='mescal', version='0.1.0')
)
libraryDependencies += "org.iplantc" % "mescal" % "0.1.0"
[org.iplantc/mescal "0.1.0"]

Dependencies

compile (4)

Group / Artifact Type Version
org.clojure : clojure jar 1.5.1
cheshire » cheshire jar 5.2.0
clj-http » clj-http jar 0.7.6
com.cemerick » url jar 0.1.0

test (2)

Group / Artifact Type Version
org.clojure : tools.nrepl jar 0.2.3
clojure-complete » clojure-complete jar 0.2.3

Project Modules

There are no modules declared in this project.

mescal

A Clojure library designed to provide a client library for the iPlant Foundation API and, eventually, Agave. Currently, only the interface to the iPlant Foundation API (labeled, "Agave version 1," in this library) is implemented.

Usage

For general interactions:

(use 'mescal.core)

;; Create the client.
(def agave (agave-client-v1 base-url proxy-user proxy-password user))

;; Lists information about all systems.
(.listSystems agave)

;; Lists information about all public apps.
(.listPublicApps agave)

;; Counts the number of public apps.
(.countPublicApps agave)

;; Lists the private apps for the current user.
(.listMyApps agave)

;; Counts the private apps for the current user.
(.countMyApps agave)

;; Obtains detailed information about a single app.
(.getApp agave app-id)

;; Submits a job.
(.submitJob agave params)     ;; App ID provided in `params`.
(.submitJob agave app params) ;; App JSON provided in `app` parameter.

;; Lists existing jobs for the current user.
(.listJob agave job-id)
(.listJobs agave)
(.listJobs agave job-ids)

For use by the DE:

(use 'mescal.de)

;; Create the client.
(def agave
 (de-agave-client-v1 base-url proxy-user proxy-pass user jobs-enabled?
                     irods-home))

;; Lists high-level information about public apps.
(.publicAppGroup agave)

;; Lists public apps.
(.listPublicApps agave)

;; Obtains detailed information about a single app.
(.getApp agave app-id)

;; Retrieves a manufactured "deployed component" for an app.
(.getAppDeployedComponent agave app-id)

;; Obtains details about an app.
(.getAppDetails agave app-id)

;; Submits a job for execution.
(.submitJob agave job-submission)

;; Lists information about previously submitted jobs.
(.listJobs agave)
(.listJobs agave job-ids)
(.listRawJob agave job-id)
(.listJobIds agave)
(.getJobParams agave job-id)
(.getAppRerunInfo agave job-id)

;; Translates the status of a job to something the DE can use.
(.translateJobStatus agave status)

License

http://iplantcollaborative.org/sites/default/files/iPLANT-LICENSE.txt

org.iplantc

iPlant Collaborative Open Source

This is an old github organization. The new organization is github.com/cyverse

Versions

Version
0.1.0