Versions Compared

Key

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

...

  • DuraStore - this web application provides the access to and management of storage resources, which includes handling the storage portion of the DuraCloud REST API
  • StorageProviders - this set is made up of the StorageProvider interfaces and the implementations which connect to distinct cloud stores (currently Amazon S3, Rackspace CloudFiles, and EMC Atmos)
  • DuraService - this web application handles the deployment and management of services within DuraCloud, which includes handling the services portion of the DuraCloud REST API
  • DuraReport - this web application handles the generation of storage and service reports and provides the reporting portion of the DuraCloud REST API
  • DurAdmin - this web application is the UI front end of DuraCloud, it provides users with a view into the information available from the other applications. DurAdmin uses the REST APIs of the other applications to communicate with them.
  • Services - the set of all deployable services, as well as the support projects that allow the DuraCloud services infrastructure to function
  • ComputeProviders - this set is made up of the ComputeProvider interfaces and the implementation which connect to distinct cloud compute services (currently Amazon EC2, using the typica library)
  • Security - handles security for the DuraCloud applications
  • Common - a set of projects which provide utilities for other portions of the codebase to reuse

The DuraCloud software, by its very nature, is designed to be integrated with underlying cloud storage and compute providers.
As  As may be expected, these integrations are exercised through many "integration tests"these integrations are necessary for the system to be properly exercised. In order for DuraCloud to connect to these underlying providers, appropriate credentials must first be established and available to the build framework.
However, in order to get up and running quickly with the software, the baseline can be initially built with just its unit tests.
Once the developer has independently acquired credentials for one or more of the supported underlying storage providers (below) builds may then be run with integration tests.. The build process can be accomplished without these credentials, however, the next step of initializing the deployed applications depend on this information. The storage providers which are currently available are:

This guide lays out the three two tiers of building/testing the baseline:

  1. build with unit tests
  2. build with storage and services integration testsbuild with OSGi services container integration tests

...

  1. Check out latest stable release from Subversion repository
    Code Block
    svn co https://svn.duraspace.org/duracloud/tags/duracloud-1.01.0
    
  2. Set environment variables
    Code Block
    export JAVA_OPTS="-XX:MaxPermSize=256m"
    export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=1024m"
    
  3. Configure Tomcat
    1. Add to $CATALINA_HOME/conf/tomcat-users.xml
      No Format
      <tomcat-users>
        <role rolename="manager"/>
        <role rolename="admin"/>
        <user username="[ANY-USERNAME]" password="[ANY-PASSWORD]" roles="admin,manager"/>
      </tomcat-users>
      
  4. Start tomcat
    Code Block
    $CATALINA_HOME/bin/startup.sh
    
  5. Configure Maven2
    1. Add tomcat user to $M2_HOME/conf/settings.xml
      No Format
      <servers>
        <server>
          <id>tomcat-server</id>
          <username>[ANY-USERNAME]</username>
          <password>[ANY-PASSWORD]</password>
        </server>
      </servers>
      
  6. Build
    1. From top of source tree
      Code Block
      mvn clean install
      
      Note: Due to the length of time required to execute integration tests as well as the nature of "eventually consistent" cloud services to not cooperate with a synchronous test suite, these tests are not included in the build by default.

...

  1. This utility takes a config file (example at //app-config/src/main/resources/init.props) and initializes an instance of duracloud
  2. Until the applications durastore and duraservice are initialized, they are non-functional
  3. To build and run the app-config utility, from within the //app-config module
    Code Block
    mvn assembly:assembly
    java -jar target/app-config-1.01.0-driver.jar
    
StoreClient package

...