Integration Test Flow

Infrastructure

Single-Node Dev Instance Deployment

Need to define, but this is a low priority.

Multi-Node Cluster Deployment

See 

Platform

Smoke Test

Command-Line Interface

TODO: detail all possible commands, expected inputs/outputs, prerequisites, etc

Account Views

See 

Landing Page View

Automation Status: 100%

Verify landing page content and that all links work as expected

Register View

Automation Status: 80% (need to learn how to automate e-mail queries)

Login View

Automation Status: 100%

Forgot/Reset Password View

Automation Status: 60% (need to learn how to automate e-mail queries)

Contact Us View

Automation Status: 90% (need to learn how to verify support e-mails are being sent)

Spec Views

Catalog View

Automation Status: 75%

See 

Add Spec View

Automation Status: 25%

Edit Spec View

Automation Status: 25%

Application Views

Dashboard View

Automation Status: 90%

See 

Add Optional Service View

Automation Status: 80%

Edit Service View

Automation Status: 80%

Log View

Automation Status: 90%

Config View

Automation Status: 90%

Console View

Automation Status: 90%

NOTE: A console test could be included with service-based specs... (i.e. clowder.e2e.js to test the various plugins and verify /home/clowder contents, if we want to go that route)

Ops

Performance Testing

See NDS Labs Performance Testing

Cluster Maintenance

Monitoring / Alerts

Backup / Recovery

Applications

In general:

Clowder + MongoDB + RabbitMQ + Elasticsearch

See 

Dataverse + PostgreSQL + Rserve + Solr + iRODS + TwoRavens

See 

DSpace + PostgreSQL

See 

Fedora Commons

Girder + MongoDB

  1. Add Girder app
  2. Start Girder app
  3. Once the endpoint comes up, click the endpoint link
  4. At the top-right of the Girder UI, choose "Register"
  5. Enter some information about your desired account and click "Register"
  6. On the left side, choose "Admin Console", then choose "Assetstores"
  7. Create a new File System assetstore with the following:
  8. On the left side, click "Collections" and create a new Collection
  9. Click "Private" and click the green button at the top-right
  10. Choose one or more files to upload items into this Collection and click "Start Upload"
  11. Click the name of your newly uploaded file
  12. Several interesting plugins for different use cases exist, although I did not dive into each of them:

iRODS iCAT + Cloudbrowser API + UI

  1. Add an iCAT stack with a zone name of "fedZone"
  2. Start iCAT stack
  3. Link a Dataverse application to this iCAT server using the Dataverse iCAT service
    1. See Dataverse+PostgreSQL+Rserve+Solr+iRODS+TwoRavens

Kibana + Elasticsearch + Logstash + LogSpout (ELK)

See 

See ELK Stack Test Cases

ownCloud

  1. If you're not already running your own instance of NDS Labs, check out our Setup Documentation.
  2. Navigate your browser to http://YOUR_IP:30000 (create a project if necessary) and log in.
  3. You should now see "ownCloud" listed with the other services on the left side of the page.
  4. Click the + button beside "ownCloud" and step through the wizard to configure ownCloud:
  5. Click the name of the stack to expand the accordion and show a more fine-grained status.
  6. Click the "Launch Stack" button at the bottom-right of the pane.
  7. Wait for the stack to start.
  8. Once the stack has started, navigate to its endpoint by click the link to the right of the service name.
  9. A new tab will open, where you will be taken to the ownCloud self-installation web interface.
  10. You should then be brought to your ownCloud instance's home page, where you will be able to upload new files and view existing files existing on the attached volume.
  11. Upload a test file somewhere into ownCloud using the + button at the top-left of the screen.
  12. To verify that MySQL is receiving updates from ownCloud, let's find a reference to the file you just uploaded in the MySQL database.

Sufia + Solr + Fedora Commons + Redis + PostgreSQL (aka "Hydra")

System Tools

HTTP Tunnel (Chisel)

File Manager (Cloud Commander)

Docker

Jenkins

Other Services

iQvoc

OntoWiki

WebProtege

IDEs

Cloud9

Jupyter

pyCharm

Rstudio

Low-level Services

In general:

Elasticsearch

RabbitMQ

Databases

MongoDB

MySQL

PostgreSQL