<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gluster-swift.git/gluster/swift, branch master</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/gluster-swift.git/'/>
<entry>
<title>Rebase to Swift 2.15.1 (pike)</title>
<updated>2017-11-22T09:07:11+00:00</updated>
<author>
<name>venkata edara</name>
<email>redara@redhat.com</email>
</author>
<published>2017-11-22T08:05:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/gluster-swift.git/commit/?id=488744a005fb399af8d094ad7a62c1917410398c'/>
<id>488744a005fb399af8d094ad7a62c1917410398c</id>
<content type='text'>
Change-Id: I84ebb44c5c3cf2f80c50f2d4ae4bd92b619a4297
Signed-off-by: venkata edara &lt;redara@redhat.com&gt;
Reviewed-on: https://review.gluster.org/18412
Reviewed-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Tested-by: Prashanth Pai &lt;ppai@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I84ebb44c5c3cf2f80c50f2d4ae4bd92b619a4297
Signed-off-by: venkata edara &lt;redara@redhat.com&gt;
Reviewed-on: https://review.gluster.org/18412
Reviewed-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Tested-by: Prashanth Pai &lt;ppai@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Rebase to Swift 2.10.1 (newton)</title>
<updated>2017-05-11T05:48:27+00:00</updated>
<author>
<name>venkata edara</name>
<email>redara@redhat.com</email>
</author>
<published>2017-05-10T07:57:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/gluster-swift.git/commit/?id=513988915aa1af13a989d062b021fe1562cbf18d'/>
<id>513988915aa1af13a989d062b021fe1562cbf18d</id>
<content type='text'>
Change-Id: I53a962c9a301089c8aed0b43c50f944c30225944
Signed-off-by: venkata edara &lt;redara@redhat.com&gt;
Reviewed-on: https://review.gluster.org/16653
Reviewed-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Tested-by: Prashanth Pai &lt;ppai@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I53a962c9a301089c8aed0b43c50f944c30225944
Signed-off-by: venkata edara &lt;redara@redhat.com&gt;
Reviewed-on: https://review.gluster.org/16653
Reviewed-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Tested-by: Prashanth Pai &lt;ppai@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for S3 Multipart Upload API</title>
<updated>2017-04-04T13:27:23+00:00</updated>
<author>
<name>venkata edara</name>
<email>redara@redhat.com</email>
</author>
<published>2017-04-04T10:22:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/gluster-swift.git/commit/?id=e9c2c5eb55e1012ccce0ce51ac48bed0c0f1d4b7'/>
<id>e9c2c5eb55e1012ccce0ce51ac48bed0c0f1d4b7</id>
<content type='text'>
Obj server checks if +segments is there and creates directory to support multi-part upload

Updated s3.md to show usage of multi-part upload.

Change-Id: I1e8a0dd850f51b2cc5dd2147607e46978dc2f936
Signed-off-by: venkata edara &lt;redara@redhat.com&gt;
Reviewed-on: https://review.gluster.org/16983
Reviewed-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Tested-by: Prashanth Pai &lt;ppai@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Obj server checks if +segments is there and creates directory to support multi-part upload

Updated s3.md to show usage of multi-part upload.

Change-Id: I1e8a0dd850f51b2cc5dd2147607e46978dc2f936
Signed-off-by: venkata edara &lt;redara@redhat.com&gt;
Reviewed-on: https://review.gluster.org/16983
Reviewed-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Tested-by: Prashanth Pai &lt;ppai@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix redundant stat in account and container server</title>
<updated>2016-11-18T17:48:42+00:00</updated>
<author>
<name>Prashanth Pai</name>
<email>ppai@redhat.com</email>
</author>
<published>2016-05-26T09:30:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/gluster-swift.git/commit/?id=3330c26f199f4a149bf0091259d88534d61f53fa'/>
<id>3330c26f199f4a149bf0091259d88534d61f53fa</id>
<content type='text'>
Multiple stat() calls were made while serving GET requests for container
and account. This removes those calls and can be easily verified using
strace.

There is room for further refactoring of code to simplify it. This will
be addressed as a separate change to keep things simple in this patch.

Change-Id: Ief457ff869c58519e9dbeb4ef13797185f536673
Signed-off-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14543
Reviewed-by: Thiago da Silva &lt;thiago@redhat.com&gt;
Tested-by: Thiago da Silva &lt;thiago@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Multiple stat() calls were made while serving GET requests for container
and account. This removes those calls and can be easily verified using
strace.

There is room for further refactoring of code to simplify it. This will
be addressed as a separate change to keep things simple in this patch.

Change-Id: Ief457ff869c58519e9dbeb4ef13797185f536673
Signed-off-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14543
Reviewed-by: Thiago da Silva &lt;thiago@redhat.com&gt;
Tested-by: Thiago da Silva &lt;thiago@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Use scandir if available</title>
<updated>2016-11-18T16:15:52+00:00</updated>
<author>
<name>Prashanth Pai</name>
<email>ppai@redhat.com</email>
</author>
<published>2016-05-20T14:03:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/gluster-swift.git/commit/?id=ce0feed60b2077085a66d34021a3c96bbb7f5558'/>
<id>ce0feed60b2077085a66d34021a3c96bbb7f5558</id>
<content type='text'>
scandir[1] is a directory iteration function like os.listdir(), which
can optimize os.walk() by avoiding unnecessary calls to os.stat()

Using scandir to avoid stat() calls requires GlusterFS to correctly
set d_type field of entries in readdir() responses[2].

[1] https://github.com/benhoyt/scandir
[2] http://review.gluster.org/#/c/14095/

Change-Id: Ibdb9a07d25708b5cd8fd663ac99669e7f1f7ba75
Signed-off-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14460
Reviewed-by: Thiago da Silva &lt;thiago@redhat.com&gt;
Tested-by: Thiago da Silva &lt;thiago@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
scandir[1] is a directory iteration function like os.listdir(), which
can optimize os.walk() by avoiding unnecessary calls to os.stat()

Using scandir to avoid stat() calls requires GlusterFS to correctly
set d_type field of entries in readdir() responses[2].

[1] https://github.com/benhoyt/scandir
[2] http://review.gluster.org/#/c/14095/

Change-Id: Ibdb9a07d25708b5cd8fd663ac99669e7f1f7ba75
Signed-off-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14460
Reviewed-by: Thiago da Silva &lt;thiago@redhat.com&gt;
Tested-by: Thiago da Silva &lt;thiago@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>s3: Make s3 support configurable</title>
<updated>2016-09-19T01:39:03+00:00</updated>
<author>
<name>Prashanth Pai</name>
<email>ppai@redhat.com</email>
</author>
<published>2016-08-05T08:55:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/gluster-swift.git/commit/?id=2318a57a1ea632f77d5f78dc11023fb3b7fc2ad0'/>
<id>2318a57a1ea632f77d5f78dc11023fb3b7fc2ad0</id>
<content type='text'>
Amazon S3 compatibility:
This change makes S3 support tunable using a config option and is
turned off by default.

This is a manual backport of this upstream swauth change:
https://review.openstack.org/#/c/326336/

Change-Id: I106e3274c6d68f4575c1bf1a9013f066e969cb17
Signed-off-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15098
Reviewed-by: Thiago da Silva &lt;thiago@redhat.com&gt;
Tested-by: Thiago da Silva &lt;thiago@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Amazon S3 compatibility:
This change makes S3 support tunable using a config option and is
turned off by default.

This is a manual backport of this upstream swauth change:
https://review.openstack.org/#/c/326336/

Change-Id: I106e3274c6d68f4575c1bf1a9013f066e969cb17
Signed-off-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15098
Reviewed-by: Thiago da Silva &lt;thiago@redhat.com&gt;
Tested-by: Thiago da Silva &lt;thiago@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't include salt in HMAC computation</title>
<updated>2016-09-13T14:00:49+00:00</updated>
<author>
<name>Prashanth Pai</name>
<email>ppai@redhat.com</email>
</author>
<published>2016-08-05T05:55:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/gluster-swift.git/commit/?id=83c50ae4ebd4d72988a781ec4183f1c62f6a63a4'/>
<id>83c50ae4ebd4d72988a781ec4183f1c62f6a63a4</id>
<content type='text'>
Currently, the input to HMAC function is the entire stored credential
in the format '&lt;salt&gt;$&lt;hash&gt;` but it should rather be only the hashed
key/password.

This is a minimal manual backport of this upstream swauth change:
https://review.openstack.org/#/c/292529/

Change-Id: Ib119522d36359f87579ff8e4ada7331643695634
Signed-off-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15097
Reviewed-by: Thiago da Silva &lt;thiago@redhat.com&gt;
Tested-by: Thiago da Silva &lt;thiago@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, the input to HMAC function is the entire stored credential
in the format '&lt;salt&gt;$&lt;hash&gt;` but it should rather be only the hashed
key/password.

This is a minimal manual backport of this upstream swauth change:
https://review.openstack.org/#/c/292529/

Change-Id: Ib119522d36359f87579ff8e4ada7331643695634
Signed-off-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15097
Reviewed-by: Thiago da Silva &lt;thiago@redhat.com&gt;
Tested-by: Thiago da Silva &lt;thiago@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix validation of marker dir objects</title>
<updated>2016-09-12T17:14:52+00:00</updated>
<author>
<name>Prashanth Pai</name>
<email>ppai@redhat.com</email>
</author>
<published>2016-05-19T10:03:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/gluster-swift.git/commit/?id=a324c6e5cdfad77e8f91ec9869deb6b78425807e'/>
<id>a324c6e5cdfad77e8f91ec9869deb6b78425807e</id>
<content type='text'>
For marker directory objects, validate_object() always returned False.
This was because st_size from stat was being compared to Content-Length
stored in metadata. Unlike files, for directories st_size is always
4096. Hence the comparison would always be '4096 == 0' which would
fail.

This patch makes the following changes:
* Do size comparison of st_size and Content-Length only for files.
* Get rid of _is_dir everywhere. This will simplify things.

Change-Id: Ib75e06c4e3bce36bab11ce7d029ff327f33c3146
Signed-off-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14423
Reviewed-by: Thiago da Silva &lt;thiago@redhat.com&gt;
Tested-by: Thiago da Silva &lt;thiago@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For marker directory objects, validate_object() always returned False.
This was because st_size from stat was being compared to Content-Length
stored in metadata. Unlike files, for directories st_size is always
4096. Hence the comparison would always be '4096 == 0' which would
fail.

This patch makes the following changes:
* Do size comparison of st_size and Content-Length only for files.
* Get rid of _is_dir everywhere. This will simplify things.

Change-Id: Ib75e06c4e3bce36bab11ce7d029ff327f33c3146
Signed-off-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14423
Reviewed-by: Thiago da Silva &lt;thiago@redhat.com&gt;
Tested-by: Thiago da Silva &lt;thiago@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't attempt unlink on a non-existing object</title>
<updated>2016-08-10T18:37:28+00:00</updated>
<author>
<name>Prashanth Pai</name>
<email>ppai@redhat.com</email>
</author>
<published>2016-05-23T09:17:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/gluster-swift.git/commit/?id=88a1bd75a515e348c6cd5f08e98ec9e39b7f66e8'/>
<id>88a1bd75a515e348c6cd5f08e98ec9e39b7f66e8</id>
<content type='text'>
Problem:
getxattr() and unlink() were being called on an object path which was
already determined to be non-existent. This resulted in both these
syscalls always failing with ENOENT when client issues DELETE request on
an object that does not exist.

A request to DELETE an object will incur the following DiskFile API
calls in sequence:
    disk_file.read_metadata()
    disk_file.delete()

The above mentioned problem manifests because Swift code invokes
disk_file.delete() even when disk_file.read_metadata() has raised
DiskFileNotExist.

Fix:
During disk_file.read_metadata(), make a note that the file does not
exist. When disk_file.delete() is called, do not proceed with object
deletion.

Change-Id: Iaf6915197a8fced7564db8fab80e696dea080c25
Signed-off-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14501
Reviewed-by: Thiago da Silva &lt;thiago@redhat.com&gt;
Tested-by: Thiago da Silva &lt;thiago@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
getxattr() and unlink() were being called on an object path which was
already determined to be non-existent. This resulted in both these
syscalls always failing with ENOENT when client issues DELETE request on
an object that does not exist.

A request to DELETE an object will incur the following DiskFile API
calls in sequence:
    disk_file.read_metadata()
    disk_file.delete()

The above mentioned problem manifests because Swift code invokes
disk_file.delete() even when disk_file.read_metadata() has raised
DiskFileNotExist.

Fix:
During disk_file.read_metadata(), make a note that the file does not
exist. When disk_file.delete() is called, do not proceed with object
deletion.

Change-Id: Iaf6915197a8fced7564db8fab80e696dea080c25
Signed-off-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14501
Reviewed-by: Thiago da Silva &lt;thiago@redhat.com&gt;
Tested-by: Thiago da Silva &lt;thiago@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't (f)chown when it has no effect</title>
<updated>2016-05-04T14:21:14+00:00</updated>
<author>
<name>Prashanth Pai</name>
<email>ppai@redhat.com</email>
</author>
<published>2016-03-18T12:55:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/gluster-swift.git/commit/?id=3451b86a6927ab7b21ae8e8a0421e4c51597df1d'/>
<id>3451b86a6927ab7b21ae8e8a0421e4c51597df1d</id>
<content type='text'>
For (f)chown calls which can change both UID and GID at once, -1 is
reserved as a sentinel value to indicate "omitted argument" or "do
not change". This makes sense when one of the args to (f)chown is -1.
When both uid and gid args are -1, it doesn't make sense to call
(f)chown as neither is going to be changed.

Further, as of today, diskfile doesn't get the information (uid and
gid) of the authenticated user from auth middleware. Retained the
calls in code for future when such functionality might be added.

Change-Id: If8463ae78a32c379d698260879810ed3c207af02
Signed-off-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13778
Reviewed-by: Thiago da Silva &lt;thiago@redhat.com&gt;
Tested-by: Thiago da Silva &lt;thiago@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For (f)chown calls which can change both UID and GID at once, -1 is
reserved as a sentinel value to indicate "omitted argument" or "do
not change". This makes sense when one of the args to (f)chown is -1.
When both uid and gid args are -1, it doesn't make sense to call
(f)chown as neither is going to be changed.

Further, as of today, diskfile doesn't get the information (uid and
gid) of the authenticated user from auth middleware. Retained the
calls in code for future when such functionality might be added.

Change-Id: If8463ae78a32c379d698260879810ed3c207af02
Signed-off-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13778
Reviewed-by: Thiago da Silva &lt;thiago@redhat.com&gt;
Tested-by: Thiago da Silva &lt;thiago@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
