Controller
Control plane of Crystal's SDS system. It is composed by the Crystal API and the distributed controllers.
Install / Use
/learn @Crystal-SDS/ControllerREADME
Crystal Controller
<!--[](https://travis-ci.org/Crystal-SDS/controller)--> <!--[](https://coveralls.io/github/Crystal-SDS/controller?branch=master)--> <!--[](https://landscape.io/github/Crystal-SDS/controller/master)-->This repository contains the code of Crystal Controller, the Software-Defined-Storage (SDS) REST API in the IOStack architecture. It is a Django project that implements the REST API needed to handle filters, storlets and policies on top of Openstack Swift object-storage system. This API also includes a set of python processes who use the PyActor middleware, an Object Oriented implementation of the Actor model. This part allows to create simple policies using a DSL (integrated in the Crystal Controller API) and to deploy them as an actor process, who analyze the system data thanks to the monitoring system, and allows to set or remove filters to tenants depending on the established policy.
To build the APIs in an easy way we use Django REST Framework.
Requirements
-
Python 2.7
-
OpenStack Swift cluster with Keystone authentication.
Installation
- Clone the Crystal controller repository
git clone https://github.com/Crystal-SDS/controller /usr/share/crystal-controller
- Install Python package dependencies:
pip install -r /usr/share/crystal-controller/requirements.txt
- Edit Crystal controller settings file
api/api/settings.py: configure Swift proxy IP and port, Keystone IP, OpenStack credentials, Redis location, RabbitMQ credentials. - You can start the controller running the following command from the source folder (
/usr/share/crystal-controller/api):
python manage.py runserver 0.0.0.0:9000
- Alternatively, it is possible to start the controller by using an Apache Http Server. Copy the config file to the Apache sites folder, and enable it.
cp /usr/share/crystal-controller/etc/apache2/sites-available/crystal_controller.conf /etc/apache2/sites-available/
a2ensite crystal_controller
service apache2 reload
Usage
API usage is detailed in the API specification.
A convenient web dashboard is also available to simplify these API calls. Refer to the dashboard overview for detailed information.
Tests
Run unit tests from the source folder (./api) with the following command: python manage.py test
Support
Please open an issue for support.
Contributing
Please contribute using Github Flow. Create a branch, add commits, and open a pull request.
For more information, please visit crystal-sds website.
Related Skills
node-connect
351.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
351.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
351.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
