Agave: Agave API parent class

Description Usage Format Details Fields ManualMethods See Also

Description

Agave Class

Singleton utility class to ease auth, api client instantiation, and session management.

Note: This class is NOT created as part of the R Swagger client generation.

Usage

1
2
3
api = Agave$new(baseUrl="https://public.agaveapi.org",
                username="myusername",
                password="mypassword")

Format

An object of class R6ClassGenerator of length 24.

Details

Create an Agave object pointing to your tenant:

1
2
3
4
library(rAgave)
api = Agave$new(baseUrl="https://public.agaveapi.org",
                username="myusername",
                password="mypassword")

Once the object is instantiated, interact with it according to the methods in the API documentation.

For example, create a new client with:

1
2
clientData <- Client$new(clientName="my_client")
> api$clients$add_client(body=clientData)$content

You may also pass in a list, if preferred, over the object model

1
api$clients$create(body=list(clientName="my_client"))

Access any endpoint with:

1
2
api$systems$list_systems()
api$jobs$submit_job(body=Job$new(appId="head-1.0u1"))

Once a client is created, it is used by default to access the API.

To make use of an existing client, pass the client's credentials into the Agave constructor:

1
2
3
api = Agave$new(baseUrl="https://public.agaveapi.co",
                username="myusername", password="mypassword",
                clientKey="123", clientSecret="abc")

Alternatively, the SDK will attempt to recover the client credentials from a predictable location disk. The default cache directory is $HOME/.agave. You can configure the location of the cache directory when instantiating a new Agave object:

1
2
3
api = Agave$new(baseUrl="https://public.agaveapi.co",
                username="myusername", password="mypassword",
                cacheDir="/Dropbox/agave/cache")

The format of the cache file is recognized by all Agave SDK, so you can freely move across multiple SDK without having to reauthenticate each time.

Your password will never be written to the cache file.

rAgave will automatically update the cache file any time you create or update your client or authenticate. Thus, subsequent instantiations can be streamlined to use the no-arg constructor as rAgave will automatically refresh your access token for you.

1
api = Agave$new()

rAgave leverages the futile.logger package to provide a custom logging output similar to log4j. You can enabled logging at runtime by specifying the logLevel parameter in the constructor. The following log levels are predefined as constants: TRACE, DEBUG, INFO, WARN, FATAL. The log level is set to FATAL by default.

1
api = Agave$new(logLevel = INFO)

You can also change the log level at runtime by upating the logLevel attibute of an Agave class instance.

1
2
3
4
5
6
api = Agave$new()
api$logLevel <- TRACE
profile <- api$profiles$getDetails()
api$logLevel <- DEBUG
profile <- api$jobs$listJobs()
api$logLevel <- FATAL

When enabled, logs will be written to agave.log in the currrent directory (getwd()). You can specify an alternative location by specifying the logFilePath parameter in the constructor.

1
api = Agave$new(logFilePath = "/var/log/rAgave.log", logLevel = INFO)

Fields

apps

instace of rAgave::AppsAPIpreconfigured to interact with the current auth configuration.

See rAgave::AppsApi, rAgave::Application

Usage

api$apps$listApps(limit=10)
api$apps$getAppDetails(id="fork-0.1.0", responseType="raw", pretty=TRUE)
clients

rAgave::ClientsApi preconfigured to interact with the current auth configuration.

See rAgave::ClientsApi, rAgave::Client

Usage

api$clients$listClients()
api$clients$addClient(clientName="my_client")
jobs

rAgave::JobsApi preconfigured to interact with the current auth configuration.

See rAgave::JobsApi, Job

Usage

api$jobs$listJobs(limit=10)
api$jobs$getJobDetails(id="4083976443515834856-242ac113-0001-007", responseType="dt")
files

rAgave::FilesApi preconfigured to interact with the current auth configuration.

See rAgave::FilesApi, rAgave::FileItem

Usage

api$files$list(path=".", systemId="linux.example.com", responseType="dt")
api$files$download(path="agave.png", systemId="linux.example.com", filename="agave-logo.png")
api$files$upload(destSystemId="linux.example.com", destFilePath=".", filename="agave-logo.png")
meta

rAgave::MetaApi preconfigured to interact with the current auth configuration.

See rAgave::MetaApi, rAgave::Metadata, rAgave::MetadataSchema

Usage

api$meta$listMetadata(q=list("value.history.date"="2012-01-01T01:11:06-0600), limit=50)
monitors

rAgave::MonitorsApi preconfigured to interact with the current auth configuration.

See rAgave::MonitorsApi, rAgave::Monitor

Usage

api$monitors$listMonitors(limit=10)
api$monitors$getMonitorDetails(id="3725843997056232985-242ac11e-0001-014")
notifications

rAgave::NotificationsApi preconfigured to interact with the current auth configuration.

See rAgave::NotificationsApi, rAgave::Notification

Usage

api$notifications$listNotifications(limit=10)
api$notifications$getNotificationDetails(id="5952569791667432985-242ac119-0001-011")
profiles

rAgave::ProfilesApi preconfigured to interact with the current auth configuration.

See rAgave::ProfilesApi, rAgave::Profile

Usage

api$profiles$listProfiles(limit=10)
api$profiles$getProfile()
api$profiles$getProfile(username="nryan")
systems

rAgave::SystemsApi preconfigured to interact with the current auth configuration.

See rAgave::SystemsApi, rAgave::Systems

Usage

api$systems$listSystems(limit=10)
api$systems$getSystemDetails(id="compute.example.com")
tags

rAgave::TagApi preconfigured to interact with the current auth configuration.

See rAgave::TagApi, rAgave::Tag

Usage

api$apps$listTags(limit=10)
api$apps$getTagDetails(id="docker", responseType="raw", pretty=TRUE)
tenants

rAgave::TenantsApi preconfigured to interact with the current auth configuration.

See rAgave::TenantsApi, rAgave::Tenant

Usage

api$tenants$listTenants()
api$tenants$getTenantDetails(id="agave.prod")
tokens

rAgave::TokensApi preconfigured to interact with the current auth configuration.

See rAgave::TokensApi, rAgave::Tokens

Usage

api$tokens$create()
api$tokens$refresh()
transforms

rAgave::TransformsApi preconfigured to interact with the current auth configuration.

See rAgave::TransformsApi, rAgave::Transform

Usage

api$transforms$listTransforms(limit=10)
api$transforms$getTransformDetails(id="zip-1.0")
uuids

rAgave::UuidsApi preconfigured to interact with the current auth configuration.

See rAgave::UuidsApi, rAgave::Uuid

Usage

api$uuids$lookup(uuid="4083976443515834856-242ac113-0001-007")
api$uuids$resolve(uuid="4083976443515834856-242ac113-0001-007")
cache

Instance of the [rAgave::AgaveCache currently in use

tokenInfo

The current rAgave::Token object

clientInfo

The active rAgave::Client application

tenantInfo

The active rAgave::Tenant object'

ManualMethods

$store() persists the current token, tenant, and client info to disk in the auth cache file.

Usage

1
api$store()

$restore(client, token, tenant) refreshes the client, token and tenant currently being used by the instance by reloading If any parameters are passed into the call, they will override the current values and be persisted to disk.

Usage

1
2
api$restore()
api$restore(token=myToken)

See Also

rAgave::ClientsAPI, rAgave::JobsAPI, rAgave::FilesAPI, rAgave::MetaAPI, rAgave::MonitorsAPI, rAgave::NotificationsAPI, rAgave::ProfilesAPI, rAgave::SystemsAPI, rAgave::TagAPI, rAgave::TenantsAPI, rAgave::TokensAPI, rAgave::TransformsAPI, rAgave::UuidsApi, rAgave::AgaveCache, rAgave::Token, rAgave::Client, rAgave::Tenant


deardooley/agave-rlang-sdk documentation built on May 17, 2019, 10:12 p.m.