Bug 904669

Summary: PackStack should create a simple cinder block storage device to use by default if none is present
Product: Red Hat OpenStack Reporter: Perry Myers <pmyers>
Component: openstack-packstackAssignee: Martin Magr <mmagr>
Status: CLOSED ERRATA QA Contact: Nir Magnezi <nmagnezi>
Severity: high Docs Contact:
Priority: high    
Version: 2.0 (Folsom)CC: aortega, derekh, fpercoco, ykaul
Target Milestone: snapshot3Keywords: Triaged
Target Release: 2.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-packstack-2012.2.2-0.9.dev406 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-03-05 21:02:55 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Perry Myers 2013-01-26 23:52:03 UTC
Description of problem:
If you elect to install Cinder but have not manually created a Cinder VG on the host running the Cinder server, Packstack will fail and tell you to go create that VG.

Why not prompt the user for the location/size of the block device to use and create one if it doesn't exist?  This takes a manual step out of all-in-one style installs.

Otherwise, if we don't automate this VG creation, I would recommend that we remove Cinder as a default install option and make users manually enable it (similar to what we do w/ Swift right now)

Comment 1 Flavio Percoco 2013-01-28 08:53:42 UTC
(In reply to comment #0)
> Description of problem:
> If you elect to install Cinder but have not manually created a Cinder VG on
> the host running the Cinder server, Packstack will fail and tell you to go
> create that VG.
> 
> Why not prompt the user for the location/size of the block device to use and
> create one if it doesn't exist?  This takes a manual step out of all-in-one
> style installs.

Adding here Folsom documentation about creating a loop device:

http://docs.openstack.org/trunk/openstack-compute/install/apt/content/osfolubuntu-cinder.html

As an extra paramter, we could also prompt the user for the volume name.


> 
> Otherwise, if we don't automate this VG creation, I would recommend that we
> remove Cinder as a default install option and make users manually enable it
> (similar to what we do w/ Swift right now)

It makes more sense. But, what about:

1) Ask the user if there's already a cinder-volume device
    1.1) If not, tell him that one will be created and ask for the necessary parameters
        1.1.1) If the user doesn't want one, disable cinder and notify the user.
    1.2) If there's, prompt him for the volume's name
2) ....

If this makes sense I'd vote for it otherwise, I'd say we should remove Cinder as default install option.

Comment 2 Perry Myers 2013-01-29 03:06:54 UTC
(In reply to comment #1)
> 1) Ask the user if there's already a cinder-volume device
>     1.1) If not, tell him that one will be created and ask for the necessary
> parameters
>         1.1.1) If the user doesn't want one, disable cinder and notify the
> user.
>     1.2) If there's, prompt him for the volume's name
> 2) ....
> 
> If this makes sense I'd vote for it otherwise, I'd say we should remove
> Cinder as default install option.

I agree with the above.

Comment 3 Lon Hohberger 2013-01-29 18:31:56 UTC
If cinder-volumes doesn't exist, it actually fails rather ungracefully:

Checking if the Cinder server has a cinder-volumes vg...ERROR:root:============= STDERR ==========
ERROR:root:Warning: Permanently added '192.168.122.9' (RSA) to the list of known hosts.
+ trap t ERR
+ vgdisplay cinder-volumes
  Volume group "cinder-volumes" not found
++ t
++ exit 5

 The cinder server should contain a cinder-volumes volume group
[ ERROR ]
ERROR:root:Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/packstack/installer/run_setup.py", line 806, in main
    _main(confFile)
  File "/usr/lib/python2.6/site-packages/packstack/installer/run_setup.py", line 593, in _main
    runSequences()
  File "/usr/lib/python2.6/site-packages/packstack/installer/run_setup.py", line 569, in runSequences
    controller.runAllSequences()
  File "/usr/lib/python2.6/site-packages/packstack/installer/setup_controller.py", line 57, in runAllSequences
    sequence.run()
  File "/usr/lib/python2.6/site-packages/packstack/installer/setup_sequences.py", line 154, in run
    step.run()
  File "/usr/lib/python2.6/site-packages/packstack/installer/setup_sequences.py", line 60, in run
    function()
  File "/usr/lib/python2.6/site-packages/packstack/plugins/cinder_250.py", line 95, in checkcindervg
    server.execute()
  File "/usr/lib/python2.6/site-packages/packstack/installer/common_utils.py", line 399, in execute
    raise ScriptRuntimeError("Error running remote script: %s" % stdoutdata)
ScriptRuntimeError: Error running remote script:

Error running remote script:
Please check log file /var/tmp/packstack/20130129-1327/openstack-setup.log for more information

Comment 4 Lon Hohberger 2013-01-29 18:32:36 UTC
Not hard to work around, but initially, I was blinded by the large backtrace and almost missed the 'please go create that vg for me'.

Comment 5 Derek Higgins 2013-02-11 17:58:55 UTC
Fixes submitted upstream (now creating cinder-volumes)

https://review.openstack.org/#/c/21551/
https://review.openstack.org/#/c/20990/

Comment 7 Nir Magnezi 2013-02-18 14:50:06 UTC
Verified NVR: openstack-packstack-2012.2.2-1.0.dev408.el6ost.noarch


1. Verified that packstack indeed creates a volume when a user asks for it.
2. Verified that packstack uses an existing volume.
3. Verified that packstack fails with an informative error in case no cinder volume available and the user doesn't won't to create one (example: Bug #890295 Comment #7).

Comment 9 errata-xmlrpc 2013-03-05 21:02:55 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2013-0595.html