Re: [Openstack] using objects returned from DB layer

2011-12-14 Thread Devin Carlen
Yes, we should absolutely push to make this more consistent across the board.  
We are severely limiting possible future implementations.

So, yea. +1!

Devin


On Dec 14, 2011, at 11:10 PM, Chris Behrens wrote:

> 
> I've seen a number of patches lately that have code like this:
> 
> instance = db.instance_get(...)
> instance_uuid = instance.uuid
> 
> instead of:
> 
> instance_uuid = instance['uuid']
> 
> There's a mix of usage throughout the code, and I know some people are just 
> matching the surrounding code.  But, in a number of cases, I've asked for 
> these to be corrected to the latter, on assumption that the DB layer will be 
> returning dictionaries at some point vs the models.  It also pushes the code 
> towards consistent usage.  But I might be the only Nova Core member looking 
> at this and/or maybe my assumption is wrong.
> 
> So, I ask here:  Should Nova Core make an effort to reject patches with the 
> former format?   Or did I miss any DB layer plans where the former format is 
> now preferred?
> 
> - Chris
> 
> 
> 
> 
> 
> 
> ___
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


[Openstack] using objects returned from DB layer

2011-12-14 Thread Chris Behrens

I've seen a number of patches lately that have code like this:

instance = db.instance_get(...)
instance_uuid = instance.uuid

instead of:

instance_uuid = instance['uuid']

There's a mix of usage throughout the code, and I know some people are just 
matching the surrounding code.  But, in a number of cases, I've asked for these 
to be corrected to the latter, on assumption that the DB layer will be 
returning dictionaries at some point vs the models.  It also pushes the code 
towards consistent usage.  But I might be the only Nova Core member looking at 
this and/or maybe my assumption is wrong.

So, I ask here:  Should Nova Core make an effort to reject patches with the 
former format?   Or did I miss any DB layer plans where the former format is 
now preferred?

- Chris






___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Inner Exception: cannot import name v1_1 from (pid=xxx) import_class

2011-12-14 Thread Denmat
Anyone?

On 14/12/2011, at 15:24, denmat  wrote:

> Hi all,
> 
> I have been following the installation instructions here:
> http://cssoss.files.wordpress.com/2011/08/openstackbookv1-0_csscorp.pdf
> 
> And I had a successful install at one stage - then I tried to install
> the dashboard, which wanted keystone and now things have gone a little
> messy.
> 
> Previously this returned successfully:
> localadmin@au-mel-kvm-3:~$ euca-describe-availability-zones verbose
> [Errno 111] Connection refused
> 
> This is because the nova services cannot be started. Each nova service
> complains in a similar way:
> ==> /var/log/nova/nova-network.log <==
> 2011-12-14 15:12:20,129 DEBUG nova.utils [-] Inner Exception: cannot
> import name v1_1 from (pid=3298) import_class
> /usr/lib/python2.7/dist-packages/nova/utils.py:65
> 2011-12-14 15:12:20,130 CRITICAL nova [-] Class FlatDHCPManager could
> not be found
> (nova): TRACE: Traceback (most recent call last):
> (nova): TRACE:   File "/usr/bin/nova-network", line 47, in 
> (nova): TRACE: server = service.Service.create(binary='nova-network')
> (nova): TRACE:   File
> "/usr/lib/python2.7/dist-packages/nova/service.py", line 216, in
> create
> (nova): TRACE: report_interval, periodic_interval)
> (nova): TRACE:   File
> "/usr/lib/python2.7/dist-packages/nova/service.py", line 125, in
> __init__
> (nova): TRACE: manager_class = utils.import_class(self.manager_class_name)
> (nova): TRACE:   File
> "/usr/lib/python2.7/dist-packages/nova/utils.py", line 66, in
> import_class
> (nova): TRACE: raise exception.ClassNotFound(class_name=class_str)
> (nova): TRACE: ClassNotFound: Class FlatDHCPManager could not be found
> (nova): TRACE:
> 
> Keystone currently works (curl tests respond) and the I can use the
> dashboard to sign in but I receive these (understandably):
> Error: Unable to get usage info: [Errno 111] ECONNREFUSED
> 
> Below are my config files:
> nova.conf
> --allow_admin_api
> --api_paste_config=/etc/nova/nova-api-paste.ini
> --cc_host=10.61.2.246
> --dhcpbridge_flagfile=/etc/nova/nova.conf
> --dhcpbridge=/usr/bin/nova-dhcpbridge
> --ec2_url=http://172.31.0.10:8773/services/Cloud
> --FAKE_subdomain=ec2
> --fixed_range=172.31.0.0/16
> --glance_api_servers=172.31.0.10:9292
> --image_service=nova.image.glance.GlanceImageService
> --iscsi_ip_prefix=172.31.
> --lock_path=/var/lock/nova
> --logdir=/var/log/nova
> --network_manager=nova.network.manager.FlatDHCPManager
> --network_size=16
> --osapi_extension=extensions.admin.Admin
> --osapi_extension=nova.api.openstack.v2.contrib.standard_extensions
> --osapi_extensions_path=/opt/build/horizon/openstack-dashboard/.dashboard-venv/src/openstackx/extensions
> --rabbit_host=10.61.2.246
> --routing_source_ip=10.61.2.246
> --s3_host=172.31.0.10
> --scheduler_driver=nova.scheduler.simple.SimpleScheduler
> --sql_connection=mysql://root:@172.31.0.10/nova
> --state_path=/var/lib/nova
> --verbose
> 
> nova-api-paste.ini
> [composite:ec2]
> use = egg:Paste#urlmap
> /: ec2versions
> /services/Cloud: ec2cloud
> /services/Admin: ec2admin
> /latest: ec2metadata
> /2007-01-19: ec2metadata
> /2007-03-01: ec2metadata
> /2007-08-29: ec2metadata
> /2007-10-10: ec2metadata
> /2007-12-15: ec2metadata
> /2008-02-01: ec2metadata
> /2008-09-01: ec2metadata
> /2009-04-04: ec2metadata
> /1.0: ec2metadata
> 
> [pipeline:ec2cloud]
> pipeline = logrequest totoken authtoken keystonecontext cloudrequest
> authorizer ec2executor
> 
> [pipeline:ec2admin]
> pipeline = logrequest totoken authtoken keystonecontext adminrequest
> authorizer ec2executor
> 
> [pipeline:ec2metadata]
> pipeline = logrequest ec2md
> 
> [pipeline:ec2versions]
> pipeline = logrequest ec2ver
> 
> [filter:logrequest]
> paste.filter_factory = nova.api.ec2:RequestLogging.factory
> 
> [filter:ec2lockout]
> paste.filter_factory = nova.api.ec2:Lockout.factory
> 
> [filter:totoken]
> paste.filter_factory = keystone.middleware.ec2_token:EC2Token.factory
> 
> [filter:ec2noauth]
> paste.filter_factory = nova.api.ec2:NoAuth.factory
> 
> [filter:authenticate]
> paste.filter_factory = nova.api.ec2:Authenticate.factory
> 
> [filter:cloudrequest]
> controller = nova.api.ec2.cloud.CloudController
> paste.filter_factory = nova.api.ec2:Requestify.factory
> 
> [filter:adminrequest]
> controller = nova.api.ec2.admin.AdminController
> paste.filter_factory = nova.api.ec2:Requestify.factory
> 
> [filter:authorizer]
> paste.filter_factory = nova.api.ec2:Authorizer.factory
> 
> [app:ec2executor]
> paste.app_factory = nova.api.ec2:Executor.factory
> 
> [app:ec2ver]
> paste.app_factory = nova.api.ec2:Versions.factory
> 
> [app:ec2md]
> paste.app_factory =
> nova.api.ec2.metadatarequesthandler:MetadataRequestHandler.factory
> 
> #
> # Openstack #
> #
> 
> [composite:osapi]
> use = egg:Paste#urlmap
> /: osversions
> /v1.1: openstackapi
> 
> [pipeline:openstackapi]
> pipeline = faultwrap authtoken keystonecontext ratelimit extensions osapiapp
> 
> [filter:faultwrap]
> paste.filter_

[Openstack] PyCon 2012 Sprints?

2011-12-14 Thread Duncan McGreggor
I just found out that PyCon 2012 registration opened up:
  https://us.pycon.org/2012/registration/

and was wondering:
 * are there any OpenStack sprints planned for March 12 through Thursday
   March 15?
 * is there a wiki page for this yet on wiki.openstack.org?

A quick search answered my question on the latter point, so I created
these two pages:

 * http://wiki.openstack.org/Sprints
 * http://wiki.openstack.org/Sprints/PyCon2012

There's no content there yet, just placeholders waiting for that first
bullet item... ;-)

d

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Writes are faster than reads in Swift

2011-12-14 Thread Ewan Mellor
> -Original Message-
> From: openstack-bounces+ewan.mellor=citrix@lists.launchpad.net
> [mailto:openstack-bounces+ewan.mellor=citrix@lists.launchpad.net]
> On Behalf Of Jay Pipes
> Sent: Wednesday, December 14, 2011 4:41 AM
> To: Michael Barton
> Cc: openstack@lists.launchpad.net
> Subject: Re: [Openstack] Writes are faster than reads in Swift
> 
> On Wed, Dec 14, 2011 at 1:17 AM, Michael Barton
>  wrote:
> > On Tue, Dec 13, 2011 at 9:21 PM, Huang Zhiteng 
> wrote:
> >> Can anyone explain why Swift doesn't want to utilize page cache _at
> all_?
> >
> > It's an artifact of the use case swift was built for - heavy on
> > writes, and repeat reads (where a cache would help) are very rare.
> > Having that memory available to cache dirents and inodes has a
> > positive impact on performance, since a swift object server has so
> > many files.
> >
> > The object server used to not drop caches if the file was small and
> > the user wasn't authenticated, but I guess that's been factored out
> at
> > some point.  It'd be nice to have that logic pluggable or
> configurable
> > somehow, since it does make swift kind of useless for things it'd
> > otherwise be good at, like serving static files directly to browsers.
> 
> Or static disk image files!

Only if you've got enough RAM on the storage worker node to cache the entire 
disk image.  Otherwise it's just going to get evicted straight away.

The case where you've got so few, small, disk images that you can cache them 
all in RAM must be pretty rare.  And if it's not rare in your use-case, I 
reckon giving that RAM to your Glance nodes and doing the caching there would 
be just as good if not better.

Cheers,

Ewan.

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Dashboard setup issues

2011-12-14 Thread Brad Hall
Hi Sagar,

For Quantum, they fixed it in their master branch.  Modify
openstack-dashboard/tools/pip-requres and make sure the quantum line
looks like this:

-e git+https://github.com/openstack/quantum.git@stable/diablo#egg=quantum

(Here is the commit for reference:
https://github.com/openstack/horizon/commit/d8a3f29d74e67af330fed3fdf802e497c55f38be#openstack-dashboard/tools/pip-requires)

This will at least get you passed the Quantum errors..

Thanks,
Brad

On Wed, Dec 14, 2011 at 10:06 AM, Frost Dragon  wrote:
> Hi,
>     Sorry if this is a noob question but I'm trying to setup Horizon as
> described here: http://forums.openstack.org/viewtopic.php?f=23&t=482#p1745 .
> I'm getting the following error message when running 'python
> tools/install_venv.py':
>
> Obtaining quantum from
> git+https://github.com/openstack/quantum.git#egg=quantum (from -r
> /opt/openstack-horizon-5108947/openstack-dashboard/tools/pip-requires (line
> 1))
>   Updating ./.dashboard-venv/src/quantum clone
>   Could not find a tag or branch 'origin/master', assuming commit.
> fatal: ambiguous argument 'origin/master': unknown revision or path not in
> the working tree.
> Use '--' to separate paths from revisions
>   Complete output from command /usr/bin/git reset --hard -q origin/master:
>
> 
> Command /usr/bin/git reset --hard -q origin/master failed with error code
> 128
> Storing complete log in /root/.pip/pip.log
> Command
> "/opt/openstack-horizon-5108947/openstack-dashboard/tools/with_venv.sh pip
> install -E
> /opt/openstack-horizon-5108947/openstack-dashboard/.dashboard-venv -r
> /opt/openstack-horizon-5108947/openstack-dashboard/tools/pip-requires"
> failed.
> None
>
> I'm getting messages like this for all dependencies which use git. Please
> suggest a way to rectify this.
>
> Thanks and regards,
> Sagar
>
> ___
> Mailing list: https://launchpad.net/~openstack
> Post to     : openstack@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp
>

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Tutorials of how to install openstack swift into centos 6

2011-12-14 Thread Prakashan Korambath
I tried to follow this instruction for Single node 
installation on CentOS 6.0.


(Instructions in the original posting is for multi node. 
So, I followed single node instructions along with this one. 
 I also have a working single node version with Ubuntu 
10.04 LTS.  I compared my notes there as well).


I have swauth-prep command working, swauth-add-account 
command working, but swauth-add-user command is giving error


/usr/bin/swauth-add-user -A https://[ipaddress]:8080/auth -K 
[adminKey]  group1 test [password]

Account creation failed: 500 Server Error
User creation failed: 500 Server Error


I don't understand the errors in /var/log/swift/proxy.log. 
I can post it if somebody needs to see it.  Thanks.


Prakashan



On 11/08/2011 10:00 PM, pf shineyear wrote:

openstack swift install on centos 6

1. proxy install

1) check your python version must>= 2.6

2) yum install libvirt

3) yum install memcached

4) yum install xfsprogs

5) yum install python-setuptools python-devel python-simplejson python-config

6) easy_install webob

7) easy_install eventlet

8) install xattr-0.6.2.tar.gz, python setup.py build, python setup.py install

9) install coverage-3.5.1.tar.gz, python setup.py build, python setup.py install

10) wget "http://www.openstack.org/projects/storage/latest-release/";
  python setup.py build
  python setup.py install

11) wget 
"https://github.com/downloads/gholt/swauth/swauth-lucid-build-1.0.2-1.tgz";
python setup.py build
python setup.py install

12) mkdir /etc/swift

13) yum install openssh-server

14) yum install git-core

15) vi /etc/swift/swift.conf

[swift-hash]
# random unique string that can never change (DO NOT LOSE)
swift_hash_path_suffix = `od -t x8 -N 8 -A nhttps://10.38.10.127:8080/v1
# Highly recommended to change this key to something else!
super_admin_key = swauthkey
log_facility = LOG_LOCAL1
log_headers = true
log_level =DEBUG
allow_account_management = true

[filter:healthcheck]
use = egg:swift#healthcheck

[filter:cache]
use = egg:swift#memcache
memcache_servers = 10.38.10.127:11211


21) config /etc/rsyslog.conf

local0.*/var/log/swift/proxy.log
local1.*/var/log/swift/swauth.log





21) build the ring, i have 3 node, 1 proxy

  swift-ring-builder account.builder create 18 3 1
  swift-ring-builder account.builder add z1-10.38.10.109:6002/sdb1 1
  swift-ring-builder account.builder add z2-10.38.10.119:6002/sdb1 1
  swift-ring-builder account.builder add z3-10.38.10.114:6002/sdb1 1
  swift-ring-builder object.builder rebalance

  swift-ring-builder account.builder rebalance
  swift-ring-builder object.builder create 18 3 1
  swift-ring-builder object.builder add z1-10.38.10.109:6000/sdb1 1
  swift-ring-builder object.builder add z2-10.38.10.119:6000/sdb1 1
  swift-ring-builder object.builder add z3-10.38.10.114:6000/sdb1 1
  swift-ring-builder object.builder rebalance

  swift-ring-builder container.builder create 18 3 1
  swift-ring-builder container.builder add z1-10.38.10.109:6001/sdb1 1
  swift-ring-builder container.builder add z2-10.38.10.119:6001/sdb1 1
  swift-ring-builder container.builder add z3-10.38.10.114:6001/sdb1 1
  swift-ring-builder container.builder rebalance


22) easy_install configobj

23) easy_install nose

24) easy_install simplejson

25) easy_install xattr

26) easy_install eventlet

27) easy_install greenlet

28) easy_install pastedeploy

29) groupadd swift

30) useradd -g swift swift

31) chown -R swift:swift /etc/swift/

32) service rsyslog restart

33) swift-init proxy start


2. storage node install

1) yum install python-setuptools python-devel python-simplejson 
python-configobj python-nose

2) yum install openssh-server

3) easy_install webob

4) yum install curl gcc memcached sqlite xfsprogs


5) easy_install eventlet


6) wget 
"http://pypi.python.org/packages/source/x/xattr/xattr-0.6.2.tar.gz#md5=5fc899150d03c082558455483fc0f89f";


  python setup.py build

  python setup.py install



7)  wget 
"http://pypi.python.org/packages/source/c/coverage/coverage-3.5.1.tar.gz#md5=410d4c8155a4dab222f2bc51212d4a24";


  python setup.py build

  python setup.py install


8) yum install libvirt


9) groupadd swift


10) useradd -g swift swift


11) mkdir -p /etc/swift


12) chown -R swift:swift /etc/swift/


13) cp swift.conf account.ring.gz container.ring.gz object.ring.gz /etc/swift/  
(scp from proxy server)


14) yum install xfsprogs


15) wget "http://www.openstack.org/projects/storage/latest-release/";

python setup.py build

python setup.py install


16) vi /etc/rsyncd.conf


# rsyncd.conf

secrets file = /etc/rsyncd.secrets

#motd file = /etc/rsyncd.motd

#read only = yes

#list = yes

uid = root

gid = root

use chroot = no

max connections = 5

log file = /var/log/rsyncd.log

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock



[domain]

comment = welcome

path = /var/www/domain/

auth users = root

hosts allow = 10

[Openstack] Dashboard setup issues

2011-12-14 Thread Frost Dragon
Hi,
Sorry if this is a noob question but I'm trying to setup Horizon as
described here:
http://forums.openstack.org/viewtopic.php?f=23&t=482#p1745. I'm
getting the following error message when running 'python
tools/install_venv.py':

Obtaining quantum from git+
https://github.com/openstack/quantum.git#egg=quantum (from -r
/opt/openstack-horizon-5108947/openstack-dashboard/tools/pip-requires (line
1))
  Updating ./.dashboard-venv/src/quantum clone
  Could not find a tag or branch 'origin/master', assuming commit.
fatal: ambiguous argument 'origin/master': unknown revision or path not in
the working tree.
Use '--' to separate paths from revisions
  Complete output from command /usr/bin/git reset --hard -q origin/master:


Command /usr/bin/git reset --hard -q origin/master failed with error code
128
Storing complete log in /root/.pip/pip.log
Command
"/opt/openstack-horizon-5108947/openstack-dashboard/tools/with_venv.sh pip
install -E
/opt/openstack-horizon-5108947/openstack-dashboard/.dashboard-venv -r
/opt/openstack-horizon-5108947/openstack-dashboard/tools/pip-requires"
failed.
None

I'm getting messages like this for all dependencies which use git. Please
suggest a way to rectify this.

Thanks and regards,
Sagar
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Metadata and File Injection

2011-12-14 Thread Jay Pipes
On Wed, Dec 14, 2011 at 9:04 AM, McNally, Dave  wrote:
> Hi,
>
> I've recently been looking at file and metadata injection in Nova and I have
> a question relating to it.
>
> (BTW this is based off what I have seen in nova/virt/disk.py)
>
> I notice that for key/value pairs specified as metadata during boot of an
> instance these values are injected into a file /meta.js in the instance.
> However if a file (and corresponding injection location) are specified when
> booting the instance the file does not get injected.

Not on libvirt/KVM. It works on Xen, though:

https://bugs.launchpad.net/nova/+bug/755168

> I was wondering if there was an intentional decision not to use a similar
> method to that used when injecting meta.js to inject other files? Because it
> seems to me the addition of such functionality would be fairly
> straightforward.

I'm interested in the answer to this question as well...

> Also on a vaguely related note why is the metadata injected into a file
> rather than stored in a location where it can be retrieved from the metadata
> service?

No idea. :(

Cheers,
-jay

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


[Openstack] Essex-2 milestone proposed candidates

2011-12-14 Thread Thierry Carrez
Hi everyone,

Milestone-proposed branches were created for Keystone, Glance, Nova and
Horizon in preparation for the essex-2 milestone delivery on Thursday.
Trunk development continues on essex-3 !

Please test proposed deliveries to ensure no critical regression found
its way in. Milestone-critical fixes will be backported to the
milestone-proposed branch until final delivery of the milestone, and
will be tracked using the "essex-2" milestone targeting.

Links:
for PROJ in ['keystone', 'nova', 'glance', 'horizon']:
 Milestone-critical bugs: https://launchpad.net/PROJ/+milestone/essex-2
 Branch at: https://github.com/openstack/PROJ/tree/milestone-proposed
 Proposed tarballs at: http://PROJ.openstack.org/tarballs/
  (Look for the most recent PROJ-2012.1~e2*.tar.gz build)

You can also test the Glance & Nova candidates on Ubuntu by enabling:
 ppa:nova-core/milestone-proposed
 ppa:glance-core/milestone-proposed

The current plan is to deliver the milestone Thursday morning, US time.
Cheers,

-- 
Thierry Carrez (ttx)
Release Manager, OpenStack

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


[Openstack] Metadata and File Injection

2011-12-14 Thread McNally, Dave
Hi,

I've recently been looking at file and metadata injection in Nova and I have a 
question relating to it.

(BTW this is based off what I have seen in nova/virt/disk.py)

I notice that for key/value pairs specified as metadata during boot of an 
instance these values are injected into a file /meta.js in the instance. 
However if a file (and corresponding injection location) are specified when 
booting the instance the file does not get injected.

I was wondering if there was an intentional decision not to use a similar 
method to that used when injecting meta.js to inject other files? Because it 
seems to me the addition of such functionality would be fairly straightforward.

Also on a vaguely related note why is the metadata injected into a file rather 
than stored in a location where it can be retrieved from the metadata service?

Thanks,

Dave
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Writes are faster than reads in Swift

2011-12-14 Thread Jay Pipes
On Wed, Dec 14, 2011 at 1:17 AM, Michael Barton
 wrote:
> On Tue, Dec 13, 2011 at 9:21 PM, Huang Zhiteng  wrote:
>> Can anyone explain why Swift doesn't want to utilize page cache _at all_?
>
> It's an artifact of the use case swift was built for - heavy on
> writes, and repeat reads (where a cache would help) are very rare.
> Having that memory available to cache dirents and inodes has a
> positive impact on performance, since a swift object server has so
> many files.
>
> The object server used to not drop caches if the file was small and
> the user wasn't authenticated, but I guess that's been factored out at
> some point.  It'd be nice to have that logic pluggable or configurable
> somehow, since it does make swift kind of useless for things it'd
> otherwise be good at, like serving static files directly to browsers.

Or static disk image files!

-jay

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp