zuul-registry/zuul_registry
James E. Blair f7eec937c8 Add debug/verification for uploads
Very rarely, we see an object in swift doesn't match the sha256
we expect.  Nor does the Etag (swift-calculated md5sum) match the
md5sum that openstacksdk calculated on upload.  Something is
going wrong somewhere, but nothing is raising an exception.  This
change adds considerable debugging to attempt to localize the
point at which the data in swift is not what we expect.  It also
raises exceptions in those cases to attempt to cause the upload
to fail (which in a content-addressible storage system is better
than having the wrong content at a given address).  If we see uploads
fail, we can track down the log entries to find out why.

* Add more log lines to swift driver
* Include upload UUID in more log lines
* Calculate and keep track of each chunk's md5 during upload
* Verify that the local and swift-calculated md5sums match after each chunk upload
* Verify that all metadata for each chunk matches before and after the move
* Verify that all metadata for each chunk matches the original calculation
  before finalizing the final large-object manifest.
* Adjust logging verbosity for debug and non-debug modes

Change-Id: If9f7cfe7d4be2f23de80e9d3659af9c060d3f22c
2020-04-01 12:57:38 -07:00
..
__init__.py Fix container image build 2019-10-02 13:50:42 -04:00
filesystem.py Add debug/verification for uploads 2020-04-01 12:57:38 -07:00
main.py Add debug/verification for uploads 2020-04-01 12:57:38 -07:00
storage.py Add debug/verification for uploads 2020-04-01 12:57:38 -07:00
storageutils.py Rework the stream_blob/stream_object API 2019-10-07 19:41:07 +00:00
swift.py Add debug/verification for uploads 2020-04-01 12:57:38 -07:00