--- /dev/null
+Migration from nova-volumes to cinder-volumes:
+
+1. upgrade your nova install to folsom
+2. upgrade your nova database using nova-manage db sync
+3. install the folsom version of cinder
+4. create a cinder database using cinder-manage db sync
+5. copy data from nova database using cinder-manage migrate import_db --src=$NOVA_SQL_CONN --dest=$CINDER_SQL_CONN
+6. disable the nova-volume-api in enabled apis in /etc/nova/nova.conf sed -i "s/osapi_volume,// /etc/nova/nova.conf"
+7. restart nova-api
+8. start cinder-api
--- /dev/null
+cinder (1:2014.2.2-fuel6.1+14.04+1) trusty; urgency=medium
+
+ * Build cinder 2014.2.2 packages for Ubuntu 14.04
+
+ -- Ivan Berezovskiy <iberezovskiy@mirantis.com> Tue, 24 Feb 2015 14:24:16 +0300
+
--- /dev/null
+usr/bin/cinder-api
--- /dev/null
+/var/log/cinder/cinder-api.log {
+ daily
+ missingok
+ compress
+ delaycompress
+ notifempty
+}
--- /dev/null
+debian/man/cinder-api.8
--- /dev/null
+description "Cinder api server"
+author "Chuck Short <zulcss@ubuntu.com>"
+
+start on runlevel [2345]
+stop on runlevel [!2345]
+
+chdir /var/run
+
+pre-start script
+ mkdir -p /var/run/cinder
+ chown cinder:cinder /var/run/cinder
+
+ mkdir -p /var/lock/cinder
+ chown cinder:root /var/lock/cinder
+end script
+
+exec start-stop-daemon --start --chuid cinder --exec /usr/bin/cinder-api \
+ -- --config-file=/etc/cinder/cinder.conf --log-file=/var/log/cinder/cinder-api.log
--- /dev/null
+usr/bin/cinder-backup
--- /dev/null
+/var/log/cinder/cinder-backup.log {
+ daily
+ missingok
+ compress
+ delaycompress
+ notifempty
+}
--- /dev/null
+description "Cinder backup server"
+author "Chuck Short <zulcss@ubuntu.com>"
+
+start on runlevel [2345]
+stop on runlevel [!2345]
+
+chdir /var/run
+
+pre-start script
+ mkdir -p /var/run/cinder
+ chown cinder:cinder /var/run/cinder
+
+ mkdir -p /var/lock/cinder
+ chown cinder:root /var/lock/cinder
+end script
+
+exec start-stop-daemon --start --chuid cinder --exec /usr/bin/cinder-backup \
+ -- --config-file=/etc/cinder/cinder.conf --log-file=/var/log/cinder/cinder-backup.log
--- /dev/null
+etc/cinder
+etc/cinder/rootwrap.d
+var/lib/cinder
+var/log/cinder
+var/lib/cinder/volumes
--- /dev/null
+debian/cinder.conf etc/cinder
+debian/cinder_sudoers etc/sudoers.d
+debian/logging.conf etc/cinder
+etc/cinder/api-paste.ini etc/cinder
+etc/cinder/policy.json etc/cinder
+etc/cinder/rootwrap.conf etc/cinder
+usr/bin/cinder-manage
+usr/bin/cinder-rootwrap
+usr/bin/cinder-rtstool
--- /dev/null
+debian/man/cinder-manage.8
+debian/man/cinder-rootwrap.8
--- /dev/null
+#!/bin/sh -e
+
+if [ "$1" = "configure" ]; then
+ if ! getent group cinder > /dev/null 2>&1; then
+ addgroup --system cinder >/dev/null
+ fi
+
+ if ! getent passwd cinder > /dev/null 2>&1; then
+ adduser --system --home /var/lib/cinder --ingroup cinder --no-create-home \
+ --shell /bin/false cinder
+ fi
+
+ chown -R cinder:adm /var/log/cinder
+ chmod 0750 /var/log/cinder
+ chown -R cinder:cinder /var/lib/cinder /etc/cinder
+ chmod 0750 /etc/cinder
+ chmod 0440 /etc/sudoers.d/cinder_sudoers
+ chown -R root:root /etc/cinder/rootwrap.d
+ chmod 0755 /etc/cinder/rootwrap.d
+ chown root:root /etc/cinder/rootwrap.conf
+
+ if ! grep -qE "^(sql_)?connection.*" /etc/cinder/cinder.conf || \
+ grep -qE "^(sql_)?connection.*sqlite.*" /etc/cinder/cinder.conf
+ then
+ su -s /bin/sh -c 'cinder-manage db sync' cinder
+ fi
+
+ if [ -e /var/lib/cinder/cinder.sqlite ]; then
+ chown cinder:cinder /var/lib/cinder/cinder.sqlite
+ chmod 0600 /var/lib/cinder/cinder.sqlite
+ fi
+fi
+
+#DEBHELPER#
--- /dev/null
+usr/bin/cinder-scheduler
--- /dev/null
+/var/log/cinder/cinder-scheduler.log {
+ daily
+ missingok
+ compress
+ delaycompress
+ notifempty
+}
--- /dev/null
+debian/man/cinder-scheduler.8
--- /dev/null
+description "Cinder scheduler server"
+author "Chuck Short <zulcss@ubuntu.com>"
+
+start on runlevel [2345]
+stop on runlevel [!2345]
+
+chdir /var/run
+
+pre-start script
+ mkdir -p /var/run/cinder
+ chown cinder:cinder /var/run/cinder
+
+ mkdir -p /var/lock/cinder
+ chown cinder:root /var/lock/cinder
+end script
+
+exec start-stop-daemon --start --chuid cinder --exec /usr/bin/cinder-scheduler \
+ -- --config-file=/etc/cinder/cinder.conf --log-file=/var/log/cinder/cinder-scheduler.log
--- /dev/null
+var/lib/cinder/volumes
--- /dev/null
+debian/cinder_tgt.conf etc/tgt/conf.d
+etc/cinder/rootwrap.d/volume.filters /etc/cinder/rootwrap.d
+usr/bin/cinder-volume
+usr/bin/cinder-volume-usage-audit
--- /dev/null
+/var/log/cinder/cinder-volume.log {
+ daily
+ missingok
+ compress
+ delaycompress
+ notifempty
+}
--- /dev/null
+debian/man/cinder-volume.8
--- /dev/null
+#!/bin/sh -e
+
+if [ "$1" = "configure" ]; then
+ chown cinder:cinder /var/lib/cinder/volumes
+ chmod 0750 /var/lib/cinder/volumes
+ chown root:root /etc/cinder/rootwrap.d/volume.filters
+
+ if which invoke-rc.d >/dev/null 2>&1; then
+ invoke-rc.d tgtd restart > /dev/null 2>&1 || true
+ else
+ /etc/init.d/tgtd restart > /dev/null 2>&1 || true
+ fi
+
+ if which invoke-rc.d >/dev/null 2>&1; then
+ invoke-rc.d cinder-volume restart > /dev/null 2>&1 || true
+ else
+ /etc/init.d/cinder-volume restart > /dev/null 2>&1 || true
+ fi
+
+fi
+
+#DEBHELPER#
--- /dev/null
+description "Cinder volume server"
+author "Chuck Short <zulcss@ubuntu.com>"
+
+start on runlevel [2345]
+stop on runlevel [!2345]
+
+chdir /var/run
+
+pre-start script
+ mkdir -p /var/run/cinder
+ chown cinder:cinder /var/run/cinder
+
+ mkdir -p /var/lock/cinder
+ chown cinder:root /var/lock/cinder
+end script
+
+exec start-stop-daemon --start --chuid cinder --exec /usr/bin/cinder-volume \
+ -- --config-file=/etc/cinder/cinder.conf --log-file=/var/log/cinder/cinder-volume.log
--- /dev/null
+[DEFAULT]
+rootwrap_config = /etc/cinder/rootwrap.conf
+api_paste_confg = /etc/cinder/api-paste.ini
+iscsi_helper = tgtadm
+volume_name_template = volume-%s
+volume_group = cinder-volumes
+verbose = True
+auth_strategy = keystone
+state_path = /var/lib/cinder
+lock_path = /var/lock/cinder
+volumes_dir = /var/lib/cinder/volumes
--- /dev/null
+Defaults:cinder !requiretty
+
+cinder ALL = (root) NOPASSWD: /usr/bin/cinder-rootwrap /etc/cinder/rootwrap.conf *
--- /dev/null
+include /var/lib/cinder/volumes/*
--- /dev/null
+Source: cinder
+Section: net
+Priority: extra
+Maintainer: MOS Cinder Team <mos-cinder@mirantis.com>
+Build-Depends: debhelper (>= 8.0.0), python-all (>= 2.7.1)
+Build-Depends-Indep:
+ python-anyjson (>= 0.3.3),
+ python-babel (>= 1.3),
+ python-coverage,
+ python-eventlet (>= 0.15.1),
+ python-fixtures (>= 0.3.14),
+ python-glanceclient (>= 1:0.14.0 ),
+ python-greenlet (>= 0.3.2),
+ python-hacking,
+ python-iso8601 (>= 0.1.9),
+ python-keystonemiddleware (>= 1.0.0),
+ python-kombu (>= 2.5.0),
+ python-lxml (>= 2.3),
+ python-migrate (>= 0.9.1),
+ python-mock,
+ python-mox,
+ python-mysqldb,
+ python-netaddr (>= 0.7.12),
+ python-novaclient (>= 2.18.0),
+ python-oslo.config (>= 1:1.4.0),
+ python-oslo.db (>= 1.0.0),
+ python-oslo.rootwrap (>= 1.3.0),
+ python-oslo.messaging (>= 1.4.0),
+ python-oslosphinx,
+ python-paramiko (>= 1.13.0),
+ python-paste,
+ python-pastedeploy (>= 1.5.0),
+ python-requests (>= 1.2.1),
+ python-pbr (>= 0.10),
+ python-routes (>= 1.12.3),
+ python-setuptools,
+ python-six (>= 1.7.0),
+ python-sphinx,
+ python-sqlalchemy (>= 0.9.7),
+ python-stevedore (>= 1.0.0),
+ python-suds (>= 0.4),
+ python-swiftclient (>= 2.2.0),
+ python-taskflow (>= 0.4),
+ python-testtools (>= 0.9.32),
+ python-webob (>= 1.2.3),
+ python-subunit (>=0.0.18),
+ testrepository (>= 0.0.18)
+Standards-Version: 3.9.4
+
+Package: python-cinder
+Section: python
+Architecture: all
+Depends:
+ python-pbr (>= 0.10),
+ python-amqplib (>= 0.6.1),
+ python-anyjson (>= 0.3.3),
+ python-babel (>= 1.3),
+ python-eventlet (>= 0.15.1),
+ python-glanceclient (>= 1:0.14.0),
+ python-requests (>= 1.2.1),
+ python-greenlet (>= 0.3.2),
+ python-iso8601 (>= 0.1.9) ,
+ python-keystonemiddleware (>= 1.0.0),
+ python-kombu (>= 2.5.0),
+ python-lockfile (>= 0.8),
+ python-lxml (>= 2.3),
+ python-migrate (>= 0.9.1),
+ python-netaddr (>= 0.7.12),
+ python-novaclient (>= 1:2.18.0),
+ python-oslo.config (>= 1:1.4.0),
+ python-oslo.db (>= 1.0.0),
+ python-oslo.messaging (>= 1.4.0),
+ python-oslo.rootwrap (>= 1.3.0),
+ python-osprofiler (>= 0.3.0),
+ python-paramiko (>= 1.13.0),
+ python-paste,
+ python-pastedeploy (>= 1.5.0),
+ python-crypto (>= 2.6),
+ python-barbicanclient (>= 2.1.0),
+ python-routes (>= 1.12.3),
+ python-six (>= 1.7.0),
+ python-sqlalchemy (>= 0.9.7),
+ python-stevedore (>= 1.0.0),
+ python-suds (>= 0.4),
+ python-swiftclient (>= 2.2.0),
+ python-taskflow (>= 0.4),
+ python-rtslib-fb (>= 2.1.39),
+ python-webob (>= 1.2.3),
+ qemu-utils,
+ ${misc:Depends},
+ ${python:Depends}
+Suggests: python-ceph, python-hp3parclient
+Description: Cinder Python libraries
+ OpenStack is a reliable cloud infrastructure. Its mission is to produce
+ the ubiquitous cloud computing platform that will meet the needs of public
+ and private cloud providers regardless of size, by being simple to implement
+ and massively scalable.
+ .
+ Cinder is the OpenStack Block storage service.
+ .
+ This package contains the Python library for Cinder.
+
+Package: cinder-common
+Architecture: all
+Depends:
+ adduser,
+ python-cinder (= ${binary:Version}),
+ ${misc:Depends},
+ ${python:Depends}
+Provides: ${python:Provides}
+Description: Cinder storage service - common files
+ OpenStack is a reliable cloud infrastructure. Its mission is to produce
+ the ubiquitous cloud computing platform that will meet the needs of public
+ and private cloud providers regardless of size, by being simple to implement
+ and massively scalable.
+ .
+ Cinder is the OpenStack Block storage service.
+ .
+ This package contains commons components for Cinder.
+
+Package: cinder-api
+Architecture: all
+Depends: cinder-common (= ${binary:Version}), ${misc:Depends}, ${python:Depends}
+Description: Cinder storage service - API server
+ OpenStack is a reliable cloud infrastructure. Its mission is to produce
+ the ubiquitous cloud computing platform that will meet the needs of public
+ and private cloud providers regardless of size, by being simple to implement
+ and massively scalable.
+ .
+ Cinder is the OpenStack Block storage service.
+ .
+ This package contains the Cinder API server.
+
+Package: cinder-volume
+Architecture: all
+Depends:
+ cinder-common (= ${binary:Version}),
+ lvm2,
+ tgt,
+ ${misc:Depends},
+ ${python:Depends}
+Breaks: cinder-common ( <= 2012.2~rc1~20120907.1154-0ubuntu1 )
+Replaces: cinder-common ( <= 2012.2~rc1~20120907.1154-0ubuntu1 )
+Description: Cinder storage service - Volume server
+ OpenStack is a reliable cloud infrastructure. Its mission is to produce
+ the ubiquitous cloud computing platform that will meet the needs of public
+ and private cloud providers regardless of size, by being simple to implement
+ and massively scalable.
+ .
+ Cinder is the OpenStack Block storage service.
+ .
+ This package contains the Cinder Volume server.
+
+Package: cinder-scheduler
+Architecture: all
+Depends: cinder-common (= ${binary:Version}), ${misc:Depends}, ${python:Depends}
+Description: Cinder storage service - Scheduler server
+ OpenStack is a reliable cloud infrastructure. Its mission is to produce
+ the ubiquitous cloud computing platform that will meet the needs of public
+ and private cloud providers regardless of size, by being simple to implement
+ and massively scalable.
+ .
+ Cinder is the OpenStack Block storage service.
+ .
+ This package contains the Cinder Scheduler server.
+
+Package: cinder-backup
+Architecture: all
+Depends: cinder-common (= ${binary:Version}), ${misc:Depends}, ${python:Depends}
+Description: Cinder storage service - Scheduler server
+ OpenStack is a reliable cloud infrastructure. Its mission is to produce
+ the ubiquitous cloud computing platform that will meet the needs of public
+ and private cloud providers regardless of size, by being simple to implement
+ and massively scalable.
+ .
+ Cinder is the OpenStack Block storage service.
+ .
+ This package contains the Cinder backup service.
--- /dev/null
+Format: http://dep.debian.net/deps/dep5-
+Upstream-Name: nova
+Source: https://code.launchpad.net/nova
+
+Files: *
+Copyright: 2010 United States Government as represented
+ by the Administrator of the National Aeronautics
+ and Space Administration.
+Copyright: 2010 OpenStack LLC
+Copyright: Others (See individual files for more details)
+License: Apache-2
+ 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.
+ .
+ On Debian-based systems the full text of the Apache version 2.0 license
+ can be found in `/usr/share/common-licenses/Apache-2.0'.
--- /dev/null
+README.rst
--- /dev/null
+[loggers]
+keys = root, cinder
+
+[handlers]
+keys = stderr, stdout, watchedfile, syslog, null
+
+[formatters]
+keys = legacycinder, default
+
+[logger_root]
+level = WARNING
+handlers = null
+
+[logger_cinder]
+level = INFO
+handlers = stderr
+qualname = cinder
+
+[logger_amqplib]
+level = WARNING
+handlers = stderr
+qualname = amqplib
+
+[logger_sqlalchemy]
+level = WARNING
+handlers = stderr
+qualname = sqlalchemy
+# "level = INFO" logs SQL queries.
+# "level = DEBUG" logs SQL queries and results.
+# "level = WARNING" logs neither. (Recommended for production systems.)
+
+[logger_boto]
+level = WARNING
+handlers = stderr
+qualname = boto
+
+[logger_suds]
+level = INFO
+handlers = stderr
+qualname = suds
+
+[logger_eventletwsgi]
+level = WARNING
+handlers = stderr
+qualname = eventlet.wsgi.server
+
+[handler_stderr]
+class = StreamHandler
+args = (sys.stderr,)
+formatter = legacycinder
+
+[handler_stdout]
+class = StreamHandler
+args = (sys.stdout,)
+formatter = legacycinder
+
+[handler_watchedfile]
+class = handlers.WatchedFileHandler
+args = ('cinder.log',)
+formatter = legacycinder
+
+[handler_syslog]
+class = handlers.SysLogHandler
+args = ('/dev/log', handlers.SysLogHandler.LOG_USER)
+formatter = legacycinder
+
+[handler_null]
+class = cinder.log.NullHandler
+formatter = default
+args = ()
+
+[formatter_legacycinder]
+class = cinder.log.LegacyCinderFormatter
+
+[formatter_default]
+format = %(message)s
--- /dev/null
+.TH cinder\-api 8
+.SH NAME
+cinder\-api \- frontend API server for cinder
+
+.SH SYNOPSIS
+.B cinder\-api
+.B \-\-config-file=<config-filepath>
+
+.SH DESCRIPTION
+.B cinder\-api
+
+This man page is a stub. Please contribute.
+
+.SH PARAMETERS
+
+.LP
+.B \-\-config-file=<config-filepath>
+.IP
+
+Path to the file containing options.
--- /dev/null
+.TH cinder\-manage 8
+.SH NAME
+cinder\-manage \- manages the cinder daemons
+
+.SH SYNOPSIS
+.B cinder\-manage
+.B <command>
+
+.SH DESCRIPTION
+.B cinder\-manage
+
+This man page is a stub. Please contribute.
+
+.SH PARAMETERS
+
+.LP
+.B <command>
+.IP
+
+cinder-manage.8 (END)
+
--- /dev/null
+.TH cinder\-rootwrap 8
+.SH NAME
+cinder\-rootwrap \- Authorizes and executes sudo commands on cinder's behalf
+
+.SH SYNOPSIS
+.B cinder\-rootwrap
+.B <command>
+
+.SH DESCRIPTION
+.B cinder\-rootwrap
+
+This man page is a stub. Please contribute.
+
+.SH PARAMETERS
+
+.LP
+.B <command>
+.IP
+
+Command to be executed with sudo
+cinder-rootwrap.8 (END)
+
--- /dev/null
+.TH cinder\-api 8
+.SH NAME
+cinder\-api \- frontend API server for cinder
+
+.SH SYNOPSIS
+.B cinder\-api
+.B \-\-config-file=<config-filepath>
+
+.SH DESCRIPTION
+.B cinder\-api
+
+This man page is a stub. Please contribute.
+
+.SH PARAMETERS
+
+.LP
+.B \-\-config-file=<config-filepath>
+.IP
+
+Path to the file containing options.
--- /dev/null
+.TH cinder\-api 8
+.SH NAME
+cinder\-api \- frontend API server for cinder
+
+.SH SYNOPSIS
+.B cinder\-api
+.B \-\-config-file=<config-filepath>
+
+.SH DESCRIPTION
+.B cinder\-api
+
+This man page is a stub. Please contribute.
+
+.SH PARAMETERS
+
+.LP
+.B \-\-config-file=<config-filepath>
+.IP
+
+Path to the file containing options.
--- /dev/null
+From 11f9508af0e10cb59f36e72ba448c94fbb9a0a2d Mon Sep 17 00:00:00 2001
+From: Alexei Sheplyakov <asheplyakov@mirantis.com>
+Date: Tue, 24 Feb 2015 22:20:19 +0300
+Subject: [PATCH] requirements.txt: adjust for Ubuntu 14.04
+
+* argparse and wsgiref are parts of the standard library in python 2.7
+* Routes!=2.0 restriction is necessary only for running tests with python
+ 3.x, routes 2.0 work just fine with python 2.7
+---
+ requirements.txt | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/requirements.txt b/requirements.txt
+index dac0a92..fc6ecc3 100644
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -4,7 +4,6 @@
+
+ pbr>=0.6,!=0.7,<1.0
+ anyjson>=0.3.3
+-argparse
+ Babel>=1.3
+ eventlet>=0.15.1,<0.16.0
+ greenlet>=0.3.2
+@@ -27,7 +26,7 @@ python-glanceclient>=0.14.0
+ python-novaclient>=2.18.0
+ python-swiftclient>=2.2.0
+ requests>=1.2.1,!=2.4.0
+-Routes>=1.12.3,!=2.0
++Routes>=1.12.3,
+ taskflow>=0.4
+ rtslib-fb>=2.1.39
+ six>=1.7.0
+@@ -36,5 +35,4 @@ sqlalchemy-migrate==0.9.1
+ stevedore>=1.0.0 # Apache-2.0
+ suds>=0.4
+ WebOb>=1.2.3
+-wsgiref>=0.1.2
+ oslo.i18n>=1.0.0 # Apache-2.0
+--
+1.9.1
+
--- /dev/null
+0001-requirements.txt-adjust-for-Ubuntu-14.04.patch
--- /dev/null
+argparse python-argparse
+osprofiler python-osprofiler
+python_barbicanclient python-barbicanclient
+rtslib_fb python-rtslib-fb
--- /dev/null
+usr/lib/python*/dist-packages/*
--- /dev/null
+#!/usr/bin/make -f
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+%:
+ dh $@ --with python2
+
+get-orig-source:
+ uscan --verbose --rename --destdir=../build-area
+
+ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
+override_dh_auto_test:
+ ./run_tests.sh -N -P
+endif
+
+override_dh_install:
+ dh_install --fail-missing -Xbin/cinder-all
+
+override_dh_fixperms:
+ dh_fixperms -Xcinder_tgt.conf
+
+override_dh_clean:
+ # temporary workaround for d2to1 wonkyness
+ dh_clean -Xsetup.cfg
--- /dev/null
+3.0 (quilt)
--- /dev/null
+#!/bin/bash
+#-----------------------
+# Testing cinder-daemons
+#-----------------------
+set -e
+DAEMONS=('cinder-api' 'cinder-scheduler')
+
+for daemon in "${DAEMONS[@]}"; do
+ if pidof -x $daemon > /dev/null; then
+ echo "OK"
+ else
+ echo "ERROR: ${daemon} IS NOT RUNNING"
+ exit 1
+ fi
+done
--- /dev/null
+#!/bin/bash
+#----------------------
+# Testing cinder-volume
+#----------------------
+set -e
+apt-get install -y cinder-volume cinder-backup 2>&1 > /dev/null
+DAEMONS=('cinder-volume' 'cinder-backup')
+
+for daemon in "${DAEMONS[@]}"; do
+ if pidof -x $daemon > /dev/null; then
+ echo "OK"
+ else
+ echo "ERROR: ${daemon} IS NOT RUNNING"
+ exit 1
+ fi
+done
+apt-get remove -y cinder-volume cinder-backup 2>&1 > /dev/null
--- /dev/null
+Tests: python-cinder cinder-daemons cinder-volume
+Depends: python-cinder, cinder-api, cinder-scheduler, lvm2
+Restrictions: needs-root
--- /dev/null
+#!/bin/bash
+#-------------------------
+# Testing client utilities
+#-------------------------
+set -e
+
+result=$(python `dirname $0`/test_import_cinder.py 2>&1)
+if [ "$result" ]; then
+ echo "ERROR: PYTHON-CINDER MODULE CANNOT BE IMPORTED"
+ exit 1
+else
+ echo "OK"
+ exit 0
+fi
--- /dev/null
+try:
+ import cinder
+except ImportError, e:
+ print "ERROR IMPORTING MODULE"