DIB element to support cinder local attach/detach functionality
This element adds python-brick-cinderclient-ext to the make customized image to support cinder local attach/detach functionality. Currently it has the dependency on known bug<https://launchpad.net/bugs/1623549>, which would be resolved with next release of python-brick-cinderclient-ext. Change-Id: Idfe83bafa2843c781c18b83f1a3aece3ae852f78
This commit is contained in:
parent
2e0f812efa
commit
34bdc7df90
34
elements/python-brickclient/README.rst
Normal file
34
elements/python-brickclient/README.rst
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
python-brickclient
|
||||||
|
==================
|
||||||
|
|
||||||
|
* This element is aimed for providing cinder local attach/detach functionality.
|
||||||
|
* Currently the feature has a dependency on a known bug
|
||||||
|
"https://launchpad.net/bugs/1623549", which has been resolved and will be part
|
||||||
|
of the upstream with the next release of python-brick-cinderclient-ext.
|
||||||
|
Note: Current version of python-brick-cinderclient-ext i.e. 0.2.0 requires and update
|
||||||
|
to be made in Line32 fo below script.
|
||||||
|
/usr/share/python-brickclient/venv/lib/python2.7/site-packages/brick_cinderclient_ext/__init__.py
|
||||||
|
update "brick-python-cinderclient-ext" to "python-brick-cinderclient-ext".
|
||||||
|
|
||||||
|
* Usage:
|
||||||
|
Pass the below shell script to parameter 'user-data' and set 'config-drive=true'
|
||||||
|
at the time of provisioning the node via nova-boot to make cinder local
|
||||||
|
attach/detach commands talk to your cloud controller.
|
||||||
|
[Example of Config Drive Script]
|
||||||
|
#!/bin/bash
|
||||||
|
FILE="/etc/bash.bashrc"
|
||||||
|
[ ! -f "$FILE" ] && touch "$FILE"
|
||||||
|
echo 'export OS_AUTH_URL="http://<controller_ip>:5000/v2.0"' >> "$FILE"
|
||||||
|
echo 'export OS_PASSWORD="password"' >> "$FILE"
|
||||||
|
echo 'export OS_USERNAME="demo"' >> "$FILE"
|
||||||
|
echo 'export OS_TENANT_NAME="demo"' >> "$FILE"
|
||||||
|
echo 'export OS_PROJECT_NAME="demo"' >> "$FILE"
|
||||||
|
exec bash
|
||||||
|
To attach: /usr/share/python-brickclient/venv/bin/cinder local-attach <volume_id>
|
||||||
|
To detach: /usr/share/python-brickclient/venv/bin/cinder local-detach <volume_id>
|
||||||
|
|
||||||
|
* Alternatively, the same action can be completed manually at the node which does
|
||||||
|
not require setting up of config drive such as:
|
||||||
|
/usr/share/python-brickclient/venv/bin/cinder --os-username demo --os-password \
|
||||||
|
password --os-tenant-name demo --os-project-name demo \
|
||||||
|
--os-auth-url=http://<controller_ip>:5000/v2.0 local-attach <volume_id>
|
2
elements/python-brickclient/element-deps
Normal file
2
elements/python-brickclient/element-deps
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
package-installs
|
||||||
|
pip-and-virtualenv
|
3
elements/python-brickclient/package-installs.yaml
Normal file
3
elements/python-brickclient/package-installs.yaml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
libssl-dev:
|
||||||
|
libffi-dev:
|
||||||
|
python-dev:
|
14
elements/python-brickclient/pkg-map
Normal file
14
elements/python-brickclient/pkg-map
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"family": {
|
||||||
|
"redhat": {
|
||||||
|
"python-dev": "python2-devel",
|
||||||
|
"libssl-dev": "openssl-devel",
|
||||||
|
"libffi-dev": "libffi-devel"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"default": {
|
||||||
|
"python-dev": "python-dev",
|
||||||
|
"libssl-dev": "libssl-dev",
|
||||||
|
"libffi-dev": "libffi-dev"
|
||||||
|
}
|
||||||
|
}
|
33
elements/python-brickclient/post-install.d/55-brick-client-install
Executable file
33
elements/python-brickclient/post-install.d/55-brick-client-install
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright 2016 Hewlett Packard Enterprise Company, L.P.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
if [ ${DIB_DEBUG_TRACE:-1} -gt 0 ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
PBCDIR=/usr/share/python-brickclient
|
||||||
|
mkdir $PBCDIR
|
||||||
|
|
||||||
|
# create the virtual environment
|
||||||
|
virtualenv $PBCDIR/venv
|
||||||
|
|
||||||
|
# Install the required packages inside virtual env
|
||||||
|
$PBCDIR/venv/bin/pip install python-brick-cinderclient-ext
|
||||||
|
|
||||||
|
ln -s $PBCDIR/venv/bin/python-brickclient /usr/local/bin/python-brickclient
|
Loading…
Reference in New Issue
Block a user