Remove files from master, as development will no longer occur there.
The stable branches continue to be supported while they are in
Maintained status.
Updated the README to indicate this change.
Depends-on: Ib186ac5830e5920e264d79be946995e63e960426
Depends-on: I081cd363117671eaab6a3193094d5872f9820354
Depends-on: If2b9a82cddb20543b176ee22765049db257c89b9
Depends-on: I1143e5e5ccf8103e386fe1ce614a554e7f152d9a
Change-Id: I4722b869033ad1bd357e36c4a258b6d3ea61f5d6
There's discussion in the pip project about removing support for
the '#egg=name' in a URL requirement specifier [0]. Since it's
redundant in our current usage in cinderlib (since the URL base
component and the package name are the same for os-brick and
cinder), just remove it and then whatever they decide to do about
this in upstream pip won't affect us.
[0] https://discuss.python.org/t/killing-off-the-egg-fragment-once-and-for-all/21660
Change-Id: If4ce5cbac388eea99ecfc5d4baee15397a61d6e5
Explain what configuration changes need to be made during
the trailing phase of cinderlib development, when cinderlib
master is still the development branch of the previous release
cycle.
Change-Id: I8c56b1ee15dfdb71d82ea856729b3ebe65029bbe
Requirements check job will fail if we don't have a min for
sphinxcontrib-svg2pdfconverter. Setting it to >=0.1.0 based
on a codesearch of openstack (that's what everyone else is
using).
Change-Id: Iaff8ad0df30dda8b439dbce832680130b91fbc1a
Add info about some manual maintenance of tox.ini and requirements
at the coordinated release time and after cinderlib release.
Change-Id: Ib5aed7582627262feb30afac27ddaa29840f7558
Instead of relying on cinder's import of sqlalchemy, import it
ourselves.
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Change-Id: I9a163d002ad7151a0cbdb04fba137688e0316944
In python 3, all strings are considered as unicode string.
This patch drops the explicit unicode literal (u'...')
or (u"..") appearances from the unicode strings.
Change-Id: I8cf2c7a1532e1df454321387a2d49e3f1e5ed1b7
Cinder, through Oslo Config, supports references as values in its
configuration options, such as the default value used in
target_ip_address which is $my_ip.
This patch adds the same functionality to cinderlib, which is convenient
for library users that use the default values reported by the
list_supported_drivers for the options to set the values.
In other words, if for example we don't pass target_ip_address for the
LVM driver configuration, then it correctly uses the value of my_ip
field, but if we get the default value and pass it, the driver will
fail, since the literal '$my_ip' is not usable as an IP address.
Change-Id: I038da3637268c9e43c464e841f8c357b212fbc9f
Method list_supported_drivers was intended for human consumption, so all
values for the options in driver_options where strings, which makes it
harder to parse by automation tools since they have to:
- Convert values from 'None' to ``None``, 'False' to ``False``, etc.
- Parse a string with type of the option to determine the additional
options, such as choices, max and min values.
This patch adds the possibility to get an output intended for automation
tools.
To maintain backward compatibility the method accepts
``output_version`` parameter that defaults to ``1`` (old output) but can get
``2`` for the new output.
Change-Id: I2ade5d2e6b2c97d905e09fee509c81c2cfb602ed
Switch to openstackdocstheme 2.2.1 and reno 3.1.0 versions. Using
these versions will allow especially:
* Linking from HTML to PDF document
* Allow parallel building of documents
* Fix some rendering problems
Update Sphinx version as well.
Set openstackdocs_pdf_link to link to PDF file. Note that
the link to the published document only works on docs.openstack.org
where the PDF file is placed in the top-level html directory. The
site-preview places the PDF in a pdf directory.
Change pygments_style to 'native' since old theme version always used
'native' and the theme now respects the setting and using 'sphinx' can
lead to some strange rendering.
Remove docs requirements from lower-constraints, they are not needed
during install or test but only for docs building.
openstackdocstheme renames some variables, so follow the renames
before the next release removes them. A couple of variables are also
not needed anymore, remove them.
See also
http://lists.openstack.org/pipermail/openstack-discuss/2020-May/014971.html
Change-Id: I69fc009dd2ba86c47a9e113212e8c79b8afcb008
This patch standardizes the CONTRIBUTING.rst file and adds
doc/source/contributor/contributing.rst
Change-Id: I88f69618d7192b33fefa3696c7b494ff5a18d29d
unittest2 was needed for Python versions <= 2.6, so it has not been
needed for quite awhile (ever in this project). See unittest2 note on:
https://docs.python.org/2.7/library/unittest.html
This drops unittest2 in favor of the standard unittest module.
Change-Id: I21264290d783d582dfb886b799781380dbf5757d
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
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
When fixing bug #1854188 (Change-ID:
I62e992804a3ae6aa0b4aa4f883807783197d4b33) we broke configuration
options, because now we cannot pass configuration options from the
DEFAULT section, and some ListOpt don't work because cinderlib was
incorrectly expecting all these options to have bounds=True, but some
don't define it and default to False.
Most of the "crazy" code we currently have around oslo config is because
we wanted to support drivers that add configuration options on runtime
and reload the configuration.
This made sense when cinderlib was not an OpenStack official project,
but now that it is it makes more sense to force Cinder drivers to do the
right thing.
Aligned with this, this patch removes all the faking of the cinder.conf
file as a StringIO object, and simply sets things in the configuration
object that is passed to the drivers, which is the only thing they
should be using.
This will make cinderlib code more robust, even if some drivers will now
need to be modified to work with cinderlib.
We are validating known configuration options and ignoring unknown ones,
like Cinder does.
The NetApp driver was one of the drivers that would get broken, but
since I have access to it and we can make a very small and targeted
workaround to avoid breaking it, we do it as well.
Closes-Bug: #1856556
Change-Id: I67fbf8e9d7ee79f3d6617b4d0ae755dae0e1987a
For backends with support for multiple pools we need to be able to
configure the pool we want to use during the cinderlib functional tests,
since we don't have preconfigured volume types like we may have in
Cinder.
Change-Id: I4221814434d9141d42f53bd9f6e22112c3fad7a0
Cinderlib's volume extend functionality would extend the volume in the
backend yet ignore any refresh of the view of the volume if it was
attached.
It also didn't provide a way to refresh the view of an extended volume
given a Connection instance.
This patch adds the funtionality to automatically refresh the view when
extending a locally attached volume as well as to do the refresh using a
Connection instance.
The refresh is done making the appropriate extend_volume call to
os-brick's connector.
The OS-Brick RBD connector doesn't have the method because there's
nothing for it to do, but to provide a consistent API we add the method
to our NOS-Brick to return the new size like other connectors do.
Change-Id: I04a29597e7515526fb8505c76c3d7e3026b2d9c8
Many packages that are automatically imported when loading cinder
modules are only used for normal Cinder operation and are not necessary
for cinderlib's execution.
One example of this happening is when cinderlib loads a Cinder module to
get configuration options but won't execute any of the code present in
that module.
This patch fakes these unnecessary packages, providing faster load
times, reduced footprint, and the possibility for distributions to
create a cinderlib package or containers with up to 40% fewer
dependencies.
Change-Id: If577b9163d4e942b701db4b2a47cd66e6bd17b6f
This patch also adds support to deal with inline svg images
This patch updates the documentation config to allow
the docs to build in pdf.
use 'tox -e pdf-docs' to build
Change-Id: I3227509d7a6d3be45a76562f69553c845f0bf27a
This patch adds documentation related to the validation of Cinder
drivers for cinderlib usage.
With a guide on how to manually validate a driver using DevStack, and
how to add cinderlib functional tests to gate jobs.
Also presents a list of cinderlib validated drivers with their
configuration to serve as a reference for developers.
Depends-On: I25c19cf1f7da6881807e729a326cd94d07b4c42d
Depends-On: Ia532b3fcfbecee7c6dc7aa302e6d90a8067b7ff0
Change-Id: I2c184af9e48c3b2f4af7182fb000272f9e162be4
Some options are now automatically configured by the version 1.20:
- project
- html_last_updated_fmt
- latex_engine
- latex_elements
- version
- release.
Change-Id: Ifbb7aeb2a9e0963faefadeaaed8bc8b3738a9c78
Sync sphinx dependency with global requirements. It caps python 2 since
sphinx 2.0 no longer supports Python 2.7.
Change-Id: I4be36c173796e85379fac0091dc36ce55832d70a
We get exception oslo_privsep.daemon.FailedToDropPrivileges when calling
cinderlib.get_connector_properties.
This is because we make it point to OS-Brick's original method, which we
later replace when we do the init in nos-brick. So cinderlib always
call the replaced method, while cinderlib users will be calling the
original OS-Brick method that hasn't replaced the privsep code.
This patch fixes this by assigning our get_connector_properties method
to the cinderlib method during the nos-brick initialization.
We also have a tiny doc change where we were saying connection instead
of connector, and some cosmetic changes in nos_brick to improve
readability, since we were using acronyms bgcp and bcp, which we now
replace for some more meaningful names.
Closes-Bug: #1822976
Change-Id: I627289418d52bdab826d1cf1a941e5671aaf2239
This patch adds the following Zuul CI jobs:
- Python 2.7 unit tests
- Python 3.6 unit tests
- Functional tests with LVM
- Functional tests with Ceph
- Publis documentation
- Release notes
Change-Id: I2f3f34c1db4716b323c48908f51500898c2c6242