openATTIC consists of a set of components built on different frameworks, which work together to provide a comprehensive storage management platform.
This document describes the architecture and components of openATTIC and provides instructions on how to set up a development environment and work on the openATTIC code base.
When an application (e.g. the openATTIC Web UI, a command line tool or an external application), wants to perform an action, the following happens:
- The REST API receives a request in form of a function call, decides which host is responsible for answering the request, and forwards it to the core on that host.
- The openATTIC Core consists of two layers:
- Django Models, the brains. They keep an eye on the whole system and decide what needs to be done.
- File system layer: Decides which programs need to be called in order to
implement the actions requested by the models, and calls those programs
via the openATTIC
systemdbackground process (not to be confused with the systemd System and Service Manager).
- The openATTIC systemd executes commands on the system and delivers the results.
If you would like to contribute to the openATTIC project, you need to prepare a development environment first.
Follow the outlined steps to Create Your own openATTIC git Fork on BitBucket.
If you’re looking for inspiration or some easy development tasks to get started with, we’ve created a list of low hanging fruit tasks that are limited in scope and should be fairly easy to tackle.
If your changes modify documented behaviour or implement new functionality, the documentation should be updated as well. See Working on the openATTIC documentation for instructions on how to update the documentation.
- Create Your own openATTIC git Fork on BitBucket
- Setting up a Development System with Vagrant
- Setting up a Development System
- Contributing Code to openATTIC
- openATTIC Contributing Guidelines
- openATTIC Core
- Working on the openATTIC documentation
- Customizing the openATTIC WebUI
- openATTIC Web UI Tests - E2E Test Suite
- About Protractor
- System Requirements
- Install Protractor
- Protractor Configuration
- Maximize Browser Window
- Use Multiple Browsers
- Set up
- Start webdriver manager Environment
- Make Protractor Execute the Tests
- Starting Only a Specific Test Suite
- How to Cancel the Tests
- E2E-Test Directory and File Structure
- Writing Your Own Tests
- Style Guide - General e2e.js File Structure / Architecture
- Tips on how to write tests that also support Firefox
- Debugging your tests
- openATTIC REST API Tests - Gatling Test Suite