devstack/lib
Clay Gerrard 0e58d22897 Create correct directory layout for swift on purpose.
The pre-existing configuration for swift on devstack set's the
*-server's devices option (the root of the servers list of devices) to:

    devices = /opt/stack/data/swift/1

where "1" is the node_number, and will be 2, 3, ... N if the devstack
machine is built with more than one swift node/device (pretty sure no
one does that on devstack ever).

The device(s) in the rings are named (perhaps confusingly similar to the
swift loopback image) just "sdb1", so all storage servers expect to have
a $STACK_USER writeable file system at:

    os.path.join(<devices_root>, "sdb1")

That directory does not exist when you start up a devstack [1].

Currently Swift's object-server's require that directory exist before
they write data into it (even with mount_check = false!).

Unfortunately however, with mount_check=false the account/container
servers are able to create the device directory when it does not exist
[2].  Which can lead to some unfortunate results with permissions on
some deployments using mount_check = false (e.g. testing or
containerized environments).  Fixing this issue [3] uncovered the
previously benign [4] mis-configuration in devstack.

Attempting

1. It was lost a long while ago I7c65303791689523f02e5ae44483a6c50b2eed1e
2. Essentially they want to:

    mkdir -p /opt/stack/data/swift/1/sdb1/containers/<part#>

... but end up creating the "sdb1" dir too!
3. I3362a6ebff423016bb367b4b6b322bb41ae08764
4. Benign because the object-server share their device with the
account-container devices and they would create the dirs before trying
to write an object.  It was incorrect, but worked by happenstance, which
is nearly as good as worked on purpose.

Change-Id: I52c4ecb70b1ae47e613ba243da5a4d94e5adedf2
2017-08-28 14:03:18 -07:00
..
cinder_backends cleanup: remove DEVSTACK_CINDER_SECURE_DELETE 2017-05-17 14:27:41 +03:00
cinder_plugins Namespace XTRACE commands 2015-11-27 15:36:04 +11:00
databases Fedora mariadb: disable cracklib 2017-06-23 10:32:16 +03:00
neutron_plugins Remove XenServer specific ovs agent config 2017-03-21 20:56:58 -07:00
nova_plugins Increase host_subset_size for ironic 2017-08-15 22:03:23 +03:00
apache Switch Centos/Fedora to Apache woker MPM 2017-08-08 15:58:22 +10:00
cinder Fix Cinder tls-proxy WSGI test 2017-08-10 13:36:13 +00:00
database Namespace XTRACE commands 2015-11-27 15:36:04 +11:00
dstat initial work to enable systemd service running 2017-03-28 07:19:15 -04:00
etcd3 ETCD need to add UNSUPPORT environment in AArch64 2017-08-04 11:54:41 +08:00
glance Correct 'uswgi' to 'uwsgi' 2017-07-12 10:09:48 +08:00
horizon Fixes devstack ldap plugin 2017-07-10 17:06:16 -03:00
infra Namespace XTRACE commands 2015-11-27 15:36:04 +11:00
keystone Modify some spelling mistakes 2017-08-10 03:03:47 -07:00
ldap Fixes devstack ldap plugin 2017-07-10 17:06:16 -03:00
libraries Add python-barbicanclient to LIBS_FROM_GIT 2017-06-22 09:45:28 -04:00
lvm Remove VGs when cleaning LVM up in devstack 2017-07-12 09:34:52 +00:00
neutron Track db sync command time useage 2017-06-14 12:09:21 -07:00
neutron-legacy Track db sync command time useage 2017-06-14 12:09:21 -07:00
nova Setup logging for nova_cell1.conf 2017-08-25 10:17:18 -04:00
oslo mv lib/oslo to lib/libraries 2017-06-20 14:09:30 -04:00
placement Track db sync command time useage 2017-06-14 12:09:21 -07:00
rpc_backend Define a new function for notifications URL 2017-04-25 17:01:21 +02:00
stack Enable optional Python 3 support 2015-12-01 14:52:35 -05:00
swift Create correct directory layout for swift on purpose. 2017-08-28 14:03:18 -07:00
tempest Merge "Enable ssh validation by default" 2017-05-26 19:21:11 +00:00
template Don't treat service as enabled if in disabled list 2017-06-07 17:23:38 +00:00
tls Make TLS logs more readable 2017-08-09 06:30:22 +10:00