- saio describes both 14.04 and 16.04 procedure
- currently we're testing on 16.04 (xenial) envrionment on the gate
Remaining task (probably another work):
- review the installation guide which adjusts to the ubuntu 14.04 LTS
Change-Id: Id690a1deabeb24bfc1af3ba3a3019794fe4b8eb9
In current API reference, 'Content-Type' header key name is used in response
parameter tables except Container GET table. On the other hand, 'Content_Type'
is used in Container GET table.
This patch fixes the 'Content_Type' in Container GET table to 'Content-Type'.
Change-Id: Idf242477dd089202635b69b85b0c19739e0c6321
If a number of DLO segments is larger than container listing limit,
Content-Length header will not be included in GET or HEAD response.
However, this fact is not explained in document of large objects.
This patch add explanation about this fact to the document.
Change-Id: Ia45fad05797f38fa8b6b0ed917b4f9d7fb337149
Closes-Bug: 1680219
In current API reference, 'bytes' and 'name' descriptions of Container GET are
shared with Account GET. However, the descriptions are not correct for
Container GET.
This patch separate descriptions for Container GET and descriptions for Account
GET and fix descriptions for Container GET.
Change-Id: Ibedd08c5d9ebe145caf567edbd9757d7bc83b96d
Update the doc link brought by the swift doc migration.
Although we had some effort to fix these before, it still left lots
of bad doc link, I separate these changes into 3 patches aim to fix
all of these, this is the 1st patch for doc/manpages.
Change-Id: Ib49696706e61bbd36ae56b15b1d94aa4ce84531c
This isn't actually used (and in swift is commented out already)
and is a leftover from a thing we did about seven years ago.
Change-Id: I9889bcfd29054f14679ae7430b077ad3afb25b98
This has been pure misdirection since DLO was pulled out of the proxy
server; req.acl is always set by the object controller before calling
swift.authorize.
See TestDlo.test_dlo_referer_on_segment_container in
test/functional/test_dlo.py for proof that we still enforce segment
container ACLs properly.
Change-Id: I5321b5537787fcea126065243f1c4bd5e601181e
Related-Change: Ib3b3830c246816dd549fc74be98b4bc651e7bace
Verify that metadata can be sync'd to a frag that has missed a POST
and consequently that frag appears to be expired, when in fact the
POST removed the X-Delete-At header.
Tests the fix added by the Related-Change.
Related-Bug: #1683689
Related-Change: I919994ead2b20dbb6c5671c208823e8b7f513715
Co-Authored-By: Clay Gerrard <clay.gerrard@gmail.com>
Change-Id: I9af9fc26098893db4043cc9a8d05d772772d4259
Current an X-Backend-Replication GET request for an expired object will
still open the expired datafile and return the object, but HEAD request
with the same headers will 404. This can lead to some bad assumptions
in probetests and other places where we make direct HEAD requests
N.B. Because SSYNC replication does not make any HEAD requests this
change is immaterial to the correctness of the consistency engine.
Related-Change-Id: I7f90b732c3268cb852b64f17555c631d668044a8
Change-Id: Idc01970b37d1b77e1d48f9c4f4979f63ee771093
Because the direct_client module uses the buffered_http module it's
requests are already robust to receiving either unicode or utf-8 paths.
The DirectClientException message however encodes the given path with
the device key from a ring node - which having come from a json
de-serialized ring will be a unicode type. Despite the device key
almost always being only ascii characters; python string interpolation
with any unicode type will always force all binary strings to be
converted to unicode - which will raise an error if any byte strings
includes non-ascii characters.
To maintain robustness in DirectClientException, when the provided path
is not already unicode we decode the bytes as utf-8 before mixing them
with the other unicode strings and then normalize everything back to a
quoted utf-8 byte string.
Change-Id: I162d2e093a3110856d6e1d513de3c7919079c9e7
I changed asserts with more specific assert methods.
e.g.: from assertTrue(sth == None) to assertIsNone(*) or
assertTrue(isinstance(inst, type)) to assertIsInstace(inst, type) or
assertTrue(not sth) to assertFalse(sth).
The code gets more readable, and a better description will be shown on fail.
Change-Id: Icdbf3c63fe8dd6db1129023885655a9f7032d4a7
Currently, timeouts when talking to memcached cause log lines like
ERROR:root:Timeout connecting to memcached: 192.168.23.62:11211
Meanwhile, socket errors (which you'd expect to be about as common
as timeouts) cause log lines like
ERROR:root:Error talking to memcached: 192.168.23.70:11211
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.7/swift/common/memcached.py", line 293, in set
(key, flags, timeout, len(value), value))
File "/usr/lib/python2.7/dist-packages/eventlet/greenio/base.py", line 390, in sendall
tail = self.send(data, flags)
File "/usr/lib/python2.7/dist-packages/eventlet/greenio/base.py", line 384, in send
return self._send_loop(self.fd.send, data, flags)
File "/usr/lib/python2.7/dist-packages/eventlet/greenio/base.py", line 371, in _send_loop
return send_method(data, *args)
error: [Errno 32] Broken pipe
... or ...
ERROR:root:Error connecting to memcached: 192.168.23.73:11211
Traceback (most recent call last):
File "/opt/ss/lib/python2.7/site-packages/swift/common/memcached.py", line 239, in _get_conns
fp, sock = self._client_cache[server].get()
File "/opt/ss/lib/python2.7/site-packages/swift/common/memcached.py", line 135, in get
fp, sock = self.create()
File "/opt/ss/lib/python2.7/site-packages/swift/common/memcached.py", line 128, in create
sock.connect((host, int(port)))
File "/opt/ss/lib/python2.7/site-packages/eventlet/greenio/base.py", line 237, in connect
while not socket_connect(fd, address):
File "/opt/ss/lib/python2.7/site-packages/eventlet/greenio/base.py", line 39, in socket_connect
raise socket.error(err, errno.errorcode[err])
error: [Errno 101] ENETUNREACH
... which seems excessive. Now, socket errors are logged as normal
errors, without the tracebacks.
Change-Id: I71a2c4786c0406dbc43b829cad5a0c7e2c45de21
If you're watching (new) node's reconstruction_last time to ensure a
cycle finishes since the last ring rebalance you won't ever see
reconstructors with no devices drop recon stats.
Change-Id: I84c07fc6841119b00d1a74078fe53f4ce637187b