does glance bzr129 version support swift

Asked by Diego Lalo on 2011-06-02

Hi Everyone, I configured a virtual machine with swift using this guide:

http://swift.openstack.org/development_saio.html

and in the cloud controller I'm using glance imaging service, here is the config file of glance:

[DEFAULT]
# Show more verbose log output (sets INFO log level output)
verbose = True

# Show debugging output in logs (sets DEBUG log level output)
debug = False

[app:glance-api]
paste.app_factory = glance.server:app_factory

# Which backend store should Glance use by default is not specified
# in a request to add a new image to Glance? Default: 'file'
# Available choices are 'file', 'swift', and 's3'
default_store = swift

# Address to bind the API server
bind_host = 0.0.0.0

# Port the bind the API server to
bind_port = 9292

# Address to find the registry server
registry_host = 0.0.0.0

# Port the registry server is listening on
registry_port = 9191

# Log to this file. Make sure you do not set the same log
# file for both the API and registry servers!
log_file = /var/log/glance/api.log

# ============ Filesystem Store Options ========================

# Directory that the Filesystem backend store
# writes image data to
filesystem_store_datadir = /var/lib/glance/images/

# ============ Swift Store Options =============================

# Address where the Swift authentication service lives
swift_store_auth_address = 192.168.1.217:8080/auth/v1.0/

# User to authenticate against the Swift authentication service
swift_store_user = test:tester

# Auth key for the user authenticating against the
# Swift authentication service
swift_store_key = testing

# Container within the account that the account should use
# for storing images in Swift
swift_store_container = glance

# Do we create the container if it does not exist?
swift_store_create_container_on_put = true

[app:glance-registry]
paste.app_factory = glance.registry.server:app_factory

# Address to bind the registry server
bind_host = 0.0.0.0

# Port the bind the registry server to
bind_port = 9191

# Log to this file. Make sure you do not set the same log
# file for both the API and registry servers!
log_file = /var/log/glance/registry.log

# SQLAlchemy connection string for the reference implementation
# registry server. Any valid SQLAlchemy connection string is fine.
# See: http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine
sql_connection = sqlite:////var/lib/glance/glance.sqlite

# Period in seconds after which SQLAlchemy should reestablish its connection
# to the database.
#
# MySQL uses a default `wait_timeout` of 8 hours, after which it will drop
# idle connections. This can result in 'MySQL Gone Away' exceptions. If you
# notice this, you can lower this value to ensure that SQLAlchemy reconnects
# before MySQL can drop the connection.
sql_idle_timeout = 3600

When I tried to add an image to glance I got the following error:

glance add --verbose name="Centos 5.5 Qcow2-2-SWIFT" is_public=true disk_format=qcow2 container_format=bare < Centos5.5-32Bits_1.0rev2_vhd/Centos5.5-32Bits_1.0rev2.qcow2
Failed to add image. Got error:
400 Bad Request

The server could not comply with the request since it is either malformed or otherwise incorrect.

 Error uploading image: No module named swift.common
Note: Your image metadata may still be in the registry, but the image's status will likely be 'killed'.
Completed in 10.5975 sec.
root@openstack-in-a-box-1rev85:~# glance add --verbose name="Centos 5.5 Qcow2-2-SWIFT" is_public=true disk_format=qcow2 container_format=bare < Centos5.5-32Bits_1.0rev2_vhd/Centos5.5-32Bits_1.0rev2.qcow2
Failed to add image. Got error:
400 Bad Request

The server could not comply with the request since it is either malformed or otherwise incorrect.

 Error uploading image: No module named swift.common
Note: Your image metadata may still be in the registry, but the image's status will likely be 'killed'.
Completed in 4.1984 sec.

Do I have to install something else to make swift work or is not supported for the moment?

Cheers
Diego

Question information

Language:
English Edit question
Status:
Answered
For:
Glance Edit question
Assignee:
No assignee Edit question
Last query:
2011-06-13
Last reply:
2011-06-13
Jay Pipes (jaypipes) said : #1

Yep, support for Swift is in there. You just need to install swift :)

If you're on Ubuntu, a quick:

sudo apt-get install python-swift

should do the trick.

-jay

Diego Lalo (diego-lalo) said : #2

Ty Jay, I installed the package you told me but now I have another error:

glance add --verbose name="Centos 5.5 Qcow2-2-SWIFT" is_public=true disk_format=qcow2 container_format=bare < Centos5.5-32Bits_1.0rev2_vhd/Centos5.5-32Bits_1.0rev2.qcow2
Failed to add image. Got error:
400 Bad Request

The server could not comply with the request since it is either malformed or otherwise incorrect.

 Error uploading image: [Errno 1] _ssl.c:490: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Note: Your image metadata may still be in the registry, but the image's status will likely be 'killed'.
Completed in 36.4647 sec.

Diego Lalo (diego-lalo) said : #3

Anyone know about the error I had when I tried to add the image with glance using swift?

Cheers
Diego

Jay Pipes (jaypipes) said : #4

On Mon, Jun 13, 2011 at 9:31 AM, Diego Lalo
<email address hidden> wrote:
> Question #160060 on Glance changed:
> https://answers.launchpad.net/glance/+question/160060
>
> Diego Lalo gave more information on the question:
> Anyone know about the error I had when I tried to add the image with
> glance using swift?

Hi Diego! Sorry, I haven't been able to find an answer on that one. It
kind of looks like your python-MCrypto library wasn't installed
correctly or didn't build the SSL lib correctly. I'm a little unsure
what to recommend, frankly :(

-jay

Diego Lalo (diego-lalo) said : #5

Ty anyway Jay, I reinstalled the package python-m2crypto but the issue remains, I found this googling the error:

http://mercurial.808500.n3.nabble.com/cloning-problem-td2281623.html

                                                                                                                                   diff python/Modules/_ssl.c python/Modules/_ssl.c
--- python/Modules/_ssl.c
+++ python/Modules/_ssl.c
@@ -365,7 +365,7 @@ newPySSLObject(PySocketSockObject *Sock, char *key_file, char *cert_file,
     }

     /* ssl compatibility */
- SSL_CTX_set_options(self->ctx, SSL_OP_ALL);
+ SSL_CTX_set_options(self->ctx, SSL_OP_ALL|SSL_OP_NO_TLSv1_1);

     verification_mode = SSL_VERIFY_NONE;
     if (certreq == PY_SSL_CERT_OPTIONAL)

I will have to find out if this could help me

Cheers
Diego

Can you help with this problem?

Provide an answer of your own, or ask Diego Lalo for more information if necessary.

To post a message you must log in.