DEPRECATED, Direct usage of Cinder Block Storage drivers without the services
Go to file
Luigi Toscano 08108b5964 Use Python 3 by default and drop Python 2
Follow the rest of OpenStack and consistently switch to
python3 as default python interpreter and drop python2.

The "functional" tox target was failing with Python 2
as cinder/master has cut the Python 2.7 compatibility.
"functional" now points to the default python3. An explicit
"functional-py37" target has been added as well.

Fix the functional jobs as well:
- move the LVM job to centos-8 and adapt it when needed;
- move the Ceph job to ubuntu-bionic, as there are no
  CentOS 8 Ceph packages (and the CentOS 7 ones do not
  provide Python 3 bindings).

Closes-Bug: #1853372
Change-Id: Iea4f4f53df7400248848399494564910d3870f63
2020-01-10 15:03:23 +01:00
cinderlib Fix configuration options 2019-12-19 11:05:22 +01:00
devstack OpenDev Migration Patch 2019-04-26 16:28:35 +00:00
doc Use Python 3 by default and drop Python 2 2020-01-10 15:03:23 +01:00
playbooks Use Python 3 by default and drop Python 2 2020-01-10 15:03:23 +01:00
releasenotes Use Python 3 by default and drop Python 2 2020-01-10 15:03:23 +01:00
roles/run-cinderlib-tests Fix: add a default value for cinderlib_pool_name 2019-12-17 19:57:19 +01:00
tools Add DevStack plugin 2019-03-20 18:34:16 +01:00
.gitignore Add zuul jobs 2019-02-26 16:21:34 +01:00
.gitreview OpenDev Migration Patch 2019-04-26 16:28:35 +00:00
.stestr.conf Add zuul jobs 2019-02-26 16:21:34 +01:00
.zuul.yaml Use Python 3 by default and drop Python 2 2020-01-10 15:03:23 +01:00
CONTRIBUTING.rst OpenDev Migration Patch 2019-04-26 16:28:35 +00:00
DESCRIPTION.rst Fix cinderlib Python package 2019-03-15 13:19:12 +01:00
HACKING.rst Format as a Cinder-related OpenStack project 2019-02-19 16:28:03 +01:00
LICENSE Format as a Cinder-related OpenStack project 2019-02-19 16:28:03 +01:00
README.rst Fix cinderlib Python package 2019-03-15 13:19:12 +01:00
babel.cfg Format as a Cinder-related OpenStack project 2019-02-19 16:28:03 +01:00
bindep.txt Use Python 3 by default and drop Python 2 2020-01-10 15:03:23 +01:00
lower-constraints.txt Bump openstackdocstheme to 1.20.0 2019-07-16 16:57:55 +08:00
requirements.txt Format as a Cinder-related OpenStack project 2019-02-19 16:28:03 +01:00
setup.cfg Use Python 3 by default and drop Python 2 2020-01-10 15:03:23 +01:00
setup.py Format as a Cinder-related OpenStack project 2019-02-19 16:28:03 +01:00
test-requirements.txt Fix cinderlib Python package 2019-03-15 13:19:12 +01:00
tox.ini Use Python 3 by default and drop Python 2 2020-01-10 15:03:23 +01:00

README.rst

Cinder Library

image

image

image

Introduction

The Cinder Library, also known as cinderlib, is a Python library that leverages the Cinder project to provide an object oriented abstraction around Cinder's storage drivers to allow their usage directly without running any of the Cinder services or surrounding services, such as KeyStone, MySQL or RabbitMQ.

The library is intended for developers who only need the basic CRUD functionality of the drivers and don't care for all the additional features Cinder provides such as quotas, replication, multi-tenancy, migrations, retyping, scheduling, backups, authorization, authentication, REST API, etc.

The library was originally created as an external project, so it didn't have the broad range of backend testing Cinder does, and only a limited number of drivers were validated at the time. Drivers should work out of the box, and we'll keep a list of drivers that have added the cinderlib functional tests to the driver gates confirming they work and ensuring they will keep working.

Features

  • Use a Cinder driver without running a DBMS, Message broker, or Cinder service.
  • Using multiple simultaneous drivers on the same application.
  • Basic operations support:
    • Create volume
    • Delete volume
    • Extend volume
    • Clone volume
    • Create snapshot
    • Delete snapshot
    • Create volume from snapshot
    • Connect volume
    • Disconnect volume
    • Local attach
    • Local detach
    • Validate connector
    • Extra Specs for specific backend functionality.
    • Backend QoS
    • Multi-pool support
  • Metadata persistence plugins:
    • Stateless: Caller stores JSON serialization.
    • Database: Metadata is stored in a database: MySQL, PostgreSQL, SQLite...
    • Custom plugin: Caller provides module to store Metadata and cinderlib calls it when necessary.

Demo