Versions Compared

Key

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

...

Purpose: DuraStore is the application through which DuraCloud manages storage. The DuraStore REST API provides access to storage by mediating the underlying storage provider APIs to allow access to multiple cloud storage options through a single API.

Panel
titleStore Initialization REST Methods

Initialize Stores

  • Purpose: Allows the initialization of storage provider accounts
  • Request: POST https://host:port/durastore/stores
  • Request Body: XML similar to:
    Code Block
    xml
    xml
    <storageProviderAccounts>
      <storageAcct ownerId='0' isPrimary='true'>
        <id>1</id>
        <storageProviderType>AMAZON_S3</storageProviderType>
        <storageProviderCredential>
          <username>username</username>
          <password>password</password>
        </storageProviderCredential>
      </storageAcct>
    </storageProviderAccounts>
    
  • Response Code: 200 (on success)
  • Response Body: "Initialization Successful" (on success)

Initialize Security Users

  • Purpose: Allows the initialization of authorized users
  • Request: POST https://host:port/durastore/security
  • Request Body: XML similar to:
    Code Block
    xml
    xml
    <?xml version="1.0" encoding="UTF-8"?>
    <dur:security-users schemaVersion="0.2" xmlns:dur="duracloud.org">
      <security-user>
        <username>username-0</username>
        <password>password-0</password>
        <enabled>true</enabled>
        <accountNonExpired>true</accountNonExpired>
        <credentialsNonExpired>true</credentialsNonExpired>
        <accountNonLocked>true</accountNonLocked>
        <grantedAuthorities>ROLE_USER</grantedAuthorities>
      </security-user>
      <security-user>
        <username>username-1</username>
        <password>password-1</password>
        <enabled>false</enabled>
        <accountNonExpired>false</accountNonExpired>
        <credentialsNonExpired>false</credentialsNonExpired>
        <accountNonLocked>false</accountNonLocked>
        <grantedAuthorities>ROLE_USER ROLE_ADMIN</grantedAuthorities>
      </security-user>
    </dur:security-users>
    
  • Response Code: 200 (on success)
  • Response Body: "Initialization Successful" (on success)
Panel
titleStore REST Methods

Get Stores

  • Purpose: Provides a listing of available storage providers accounts (without credentials)
  • Request: GET https://host:port/durastore/stores
  • Parameters: None
  • Response Code: 200 (on success)
  • Response Body: XML similar to:
    Code Block
    xml
    xml
    <storageProviderAccounts>
      <storageAcct isPrimary='true'>
        <id>1</id>
        <storageProviderType>AMAZON_S3</storageProviderType>
      </storageAcct>
      <storageAcct isPrimary="false">
        <id>2</id>
        <storageProviderType>RACKSPACE</storageProviderType>
      </storageAcct>
    </storageProviderAccounts>
    

...

Resources: XML schema which define the service configuration can be found on the Downloads page

Panel
titleService Initialization REST Methods

Initialize Services

  • Purpose: Initializes the DuraService application
  • Request: POST https://host:port/duraservice/services
  • Request Body: XML similar to:
    Code Block
    xml
    xml
     <servicesConfig>
       <primaryServiceInstance>
          <host>[PRIMARY-SERVICE-INSTANCE-HOST]</host>
          <servicesAdminPort>[PRIMARY-SERVICES-ADMIN-PORT]</servicesAdminPort>
          <servicesAdminContext>[PRIMARY-SERVICES-ADMIN-CONTEXT]</servicesAdminContext>
       </primaryServiceInstance>
       <userStorage>
         <host>[USER-STORAGE-HOST-NAME]</host>
         <port>[USER-STORAGE-PORT]</port>
         <context>[USER-STORAGE-CONTEXT]</context>
         <msgBrokerUrl>[USER-STORAGE-MSG-BROKER-URL]</msgBrokerUrl>
       </userStorage>
       <serviceStorage>
         <host>[SERVICES-STORAGE-HOST-NAME]</host>
         <port>[SERVICES-STORAGE-PORT]</port>
         <context>[SERVICES-STORAGE-CONTEXT]</context>
         <spaceId>[SERVICES-STORAGE-SPACE-ID]</spaceId>
       </serviceStorage>
       <serviceCompute>
         <type>AMAZON_EC2</type>
         <imageId>[MACHINE-IMAGE-ID]</imageId>
         <computeProviderCredential>
           <username>[USERNAME]</username>
           <password>[PASSWORD]</password>
         </computeProviderCredential>
       </serviceCompute>
     </servicesConfig>
    
  • Response Code: 200 (on success)
  • Response Body: "Initialization Successful" (on success)

Initialize Security Users

  • Purpose: Allows the initialization of authorized users
  • Request: POST https://host:port/duraservice/security
  • Request Body: XML similar to:
    Code Block
    xml
    xml
    <?xml version="1.0" encoding="UTF-8"?>
    <dur:security-users schemaVersion="0.2" xmlns:dur="duracloud.org">
      <security-user>
        <username>username-0</username>
        <password>password-0</password>
        <enabled>true</enabled>
        <accountNonExpired>true</accountNonExpired>
        <credentialsNonExpired>true</credentialsNonExpired>
        <accountNonLocked>true</accountNonLocked>
        <grantedAuthorities>ROLE_USER</grantedAuthorities>
      </security-user>
      <security-user>
        <username>username-1</username>
        <password>password-1</password>
        <enabled>false</enabled>
        <accountNonExpired>false</accountNonExpired>
        <credentialsNonExpired>false</credentialsNonExpired>
        <accountNonLocked>false</accountNonLocked>
        <grantedAuthorities>ROLE_USER ROLE_ADMIN</grantedAuthorities>
      </security-user>
    </dur:security-users>
    
  • Response Code: 200 (on success)
  • Response Body: "Initialization Successful" (on success)
Panel
titleService REST Methods

Get Services

  • Purpose: Retrieves a listing of services, along with their configuration options
  • Request: GET https://host:port/duraservice/services ? (show)
    • Parameter options for show (optional)
      1. available (default) - Includes only services which have not been deployed but are available for deployment
      2. deployed - Includes only services which have been deployed and started
  • Response Code: 200 (on success)
  • Response Body: XML list of services (see service config xsd)

Get Service

  • Purpose: Retrieves information about a particular service including description, configuration options, and all deployments
  • Request: GET https://host:port/duraservice/serviceID
  • Response Code: 200 (on success)
  • Response Body: XML service (see service config xsd)

Get Deployed Service

  • Purpose: Retrieves information about a deployed service including description, configuration options, and a single deployment indicating the configuration options in use
  • Request: GET https://host:port/duraservice/serviceID/deploymentID
  • Response Code: 200 (on success)
  • Response Body: XML service (see service config xsd)

Get Deployed Service Properties

Deploy Service

  • Purpose: Deploys and starts an available service
  • Request: PUT https://host:port/duraservice/serviceID ? (serviceHost)
    • Parameter value for serviceHost (optional) should indicate the services host on which the service should be deployed. Default is the primary customer host.
  • Request Body: XML user configuration indicating the config selections for the service (see user config portion of service config xsd)
  • Response Code: 201 (on success)
  • Response Header: Location header indicates the URL at which information about the deployed service can be retrieved (the URL for a get deployed service call) which includes the deploymentID

Update Service Configuration

  • Purpose: Updates the configuration of a deployed service
  • Request: POST https://host:port/duraservice/serviceID/deploymentID
  • Request Body: Updated XML user configuration indicating the config selections for the service (see user config portion of service config xsd)
  • Response Code: 200 (on success)

UnDeploy Service

...