summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add ability to generate a temporary URL with anmmcardle2018-07-104-9/+105
| | | | | | IP range restriction Change-Id: I4734599886e4f4a563162390d0ff3bb1ef639db4
* Merge "Add option for user to enter password"Zuul2018-06-303-3/+95
|\
| * Add option for user to enter passwordAlistair Coles2018-06-113-3/+95
| | | | | | | | | | | | | | | | | | | | | | | | Add the --prompt option for the CLI which will cause the user to be prompted to enter a password. Any password otherwise specified by --key, --os-password or an environment variable will be ignored. The swift client will exit with a warning if the password cannot be entered without its value being echoed. Closes-Bug: #1357562 Change-Id: I513647eed460007617f129691069c6fb1bfe62d7
* | Merge "Make OS_AUTH_URL work in DevStack by default"Zuul2018-06-292-1/+53
|\ \
| * | Make OS_AUTH_URL work in DevStack by defaultClay Gerrard2018-06-202-1/+53
| |/ | | | | | | | | | | | | | | | | | | | | | | An earlier change added support for versionless authurls, but the huristic to detect them didn't work for some configurations I've encountered. Now we use a little bit tighter pattern matching and support auth_url values with more than one path component. Change-Id: I5a99c7b4e957ee7c8a5b5470477db49ab2ddba4b Related-Change-Id: If7ecb67776cb77828f93ad8278cc5040015216b7
* | Merge "Remove some pointless code"Zuul2018-06-231-6/+0
|\ \ | |/ |/|
| * Remove some pointless codeTim Burke2018-06-221-6/+0
| | | | | | | | Change-Id: I3163834c330c5ea44c1096e83127588c88f0d761
* | Remove PyPI downloadsChen2018-06-071-4/+0
| | | | | | | | | | | | | | | | | | According to official site, https://packaging.python.org/guides/analyzing-pypi-package-downloads/ PyPI package download statistics is no longer maintained and thus should be removed. Change-Id: I05e7d48d191bdaaf029f0ad1373a9c7c8b22e81e
* | Merge "Use a valid default for auth_version"Zuul2018-06-061-1/+1
|\ \ | |/ |/|
| * Use a valid default for auth_versionPete Zaitcev2018-05-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The valid set of values for auth_version does not include values starting with the 'v'. In this particular function, the auth_version variable is only used for comparisons with v3. So, the code worked correctly. However, let's clean this up in order to reduce review confusion and defuse possible future landmine in case of code changes. Change-Id: I671016d7992a1922b786b4eb8876b3fbb2532e15
* | Merge "show option per line"Zuul2018-06-051-4/+8
|\ \
| * | show option per lineThiago da Silva2018-03-171-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | ading multiple options on the same line makes it easy to miss when quickly scanning the options. Change-Id: I8e324fca48cd05d9e381d5106135542274c2ff7f Signed-off-by: Thiago da Silva <thiago@redhat.com>
* | | Merge "Make swiftclient respect region_name when using sessions"Zuul2018-06-011-1/+3
|\ \ \
| * | | Make swiftclient respect region_name when using sessionsErik Olof Gunnar Andersson2018-05-161-1/+3
| | |/ | |/| | | | | | | Change-Id: I94aca6f1120c34616562be7345f0e5aa51a69499
* | | Switch from oslosphinx to openstackdocsthemeNguyen Hai2018-05-231-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | openstackdocstheme is a theme and extension support for Sphinx documentation that is published to docs.openstack.org and developer.openstack.org. Change-Id: I37d1d50fb88b35e72b017d5dfbf148c35ac7e323
* | | add lower-constraints jobDoug Hellmann2018-04-257-14/+84
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create a tox environment for running the unit tests against the lower bounds of the dependencies. Create a lower-constraints.txt to be used to enforce the lower bounds in those tests. Add openstack-tox-lower-constraints job to the zuul configuration. Update the dependencies needed to make the unit tests pass while constrained to the lower bounds. See http://lists.openstack.org/pipermail/openstack-dev/2018-March/128352.html for more details. Co-Authored-By: Nguyen Hai <nguyentrihai93@gmail.com> Change-Id: I2a8f465c8b08370517cbec857933b08fca94ca38 Depends-On: https://review.openstack.org/555034 Signed-off-by: Doug Hellmann <doug@doughellmann.com>
* | Trivial: Update pypi url to new urlTovin Seven2018-04-201-3/+3
| | | | | | | | | | | | | | | | | | Pypi url changed from [1] to [2] [1] https://pypi.python.org/pypi/<package> [2] https://pypi.org/project/<package> Change-Id: Ia406e9c8be6ba672b96e8584ef26f92348c8328b
* | Merge "Remove trailing white space in tox.ini"Zuul2018-04-121-1/+1
|\ \
| * | Remove trailing white space in tox.iniKota Tsuyuzaki2018-04-121-1/+1
| | | | | | | | | | | | Change-Id: I706b69b7230390234ab255682478e8f69261cafe
* | | Remove py34 from envlist in tox.iniNguyen Hai2018-04-061-1/+1
|/ / | | | | | | | | | | py35 is enough. Change-Id: Iebd7a6741dd60ed2fb11d1758bfec8e03e30a086
* | Add force auth retry mode in swiftclientKota Tsuyuzaki2018-03-134-2/+84
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch attemps to add an option to force get_auth call while retrying an operation even if it gets errors other than 401 Unauthorized. Why we need this: The main reason why we need this is current python-swiftclient requests could never get succeeded under certion situation using third party proxies/load balancers between the client and swift-proxy server. I think, it would be general situation of the use case. Specifically describing nginx case, the nginx can close the socket from the client when the response code from swift is not 2xx series. In default, nginx can wait the buffers from the client for a while (default 30s)[1] but after the time past, nginx will close the socket immediately. Unfortunately, if python-swiftclient has still been sending the data into the socket, python-swiftclient will get socket error (EPIPE, BrokenPipe). From the swiftclient perspective, this is absolutely not an auth error, so current python-swiftclient will continue to retry without re-auth. However, if the root cause is sort of 401 (i.e. nginx got 401 unauthorized from the swift-proxy because of token expiration), swiftclient will loop 401 -> EPIPE -> 401... until it consume the max retry times. In particlar, less time to live of the token and multipart object upload with large segments could not get succeeded as below: Connection Model: python-swiftclient -> nginx -> swift-proxy -> swift-backend Case: Try to create slo with large segments and the auth token expired with 1 hour 1. client create a connection to nginx with successful response from swift-proxy and its auth 2. client continue to put large segment objects (e.g. 1~5GB for each and the total would 20~30GB, i.e. 20~30 segments) 3. after some of segments uploaded, 1 hour past but client is still trying to send remaining segment objects. 4. nginx got 401 from swift-proxy for a request and wait that the connection is closed from the client but timeout past because the python-swiftclient is still sending much data into the socket before reading the 401 response. 5. client got socket error because nginx closed the connection during sending the buffer. 6. client retries a new connection to nginx without re-auth... <loop 4-6> 7. finally python-swiftclient failed with socket error (Broken Pipe) In operational perspective, setting longer timeout for lingering close would be an option but it's not complete solution because any other proxy/LB may not support the options. If we actually do THE RIGHT THING in python-swiftclient, we should send expects: 100-continue header and handle the first response to re-auth correctly. HOWEVER, the current python's httplib and requests module used by python-swiftclient doesn't support expects: 100-continue header [2] and the thread proposed a fix [3] is not super active. And we know the reason we depends on the library is to fix a security issue that existed in older python-swiftclient [4] so that we should touch around it super carefully. In the reality, as the hot fix, this patch try to mitigate the unfortunate situation described above WITHOUT 100-continue fix, just users can force to re-auth when any errors occurred during the retries that can be accepted in the upstream. 1: http://nginx.org/en/docs/http/ngx_http_core_module.html#lingering_close 2: https://github.com/requests/requests/issues/713 3: https://bugs.python.org/issue1346874 4: https://review.openstack.org/#/c/69187/ Change-Id: I3470b56e3f9cf9cdb8c2fc2a94b2c551927a3440
* Merge "Add a query_string option to head_object()."Zuul2018-03-062-5/+19
|\
| * Add a query_string option to head_object().Timur Alperovich2018-03-052-5/+19
| | | | | | | | | | | | | | | | Submitting a path parameter with a HEAD request on an object can be useful if one is trying to find out information about an SLO/DLO without retrieving the manifest. Change-Id: I39efd098e72bd31de271ac51d4d75381929c9638
* | Update links in READMEwangqi2018-03-051-2/+2
|/ | | | | | Change the outdated links to the latest links in README Change-Id: Ic0adc686592265f2be2acb55f0520c35d1717f76
* Merge "Update the old http doc links"Zuul2018-01-314-9/+9
|\
| * Update the old http doc linksshangxiaobj2018-01-304-9/+9
| | | | | | | | | | | | | | Update the old http doc links to the https ones according to the official OpenStack website. Change-Id: Ibf9ecbccb743d2b9a678a1ca69f0b3adc9106a12
* | Update reno for stable/queensOpenStack Release Bot2018-01-292-0/+7
| | | | | | | | Change-Id: I7f7b21e3dd0d1ef71c159e2b72f9ad9f963b0773
* | authors/changelog updates for 3.5.0 release3.5.0John Dickinson2018-01-243-0/+38
|/ | | | Change-Id: I70b79c0fd6e9adbfdcc799459dc52063c7402be2
* Allow for object uploads > 5GB from stdin.Timur Alperovich2018-01-184-25/+462
| | | | | | | | | | | | | When uploading from standard input, swiftclient should turn the upload into an SLO in the case of large objects. This patch picks the threshold as 10MB (and uses that as the default segment size). The consumers can also supply the --segment-size option to alter that threshold and the SLO segment size. The patch does buffer one segment in memory (which is why 10MB default was chosen). (test is updated) Change-Id: Ib13e0b687bc85930c29fe9f151cf96bc53b2e594
* Revert "Add Constraints support"Tim Burke2018-01-173-38/+3
| | | | | | | | | | | | Per http://lists.openstack.org/pipermail/openstack-dev/2017-December/125348.html > For many projects, tox_install.sh is not needed at all Let's see if that holds for python-swiftclient! This reverts commit f2f278fcbec3ad52a1726bb5a3f775d13bcc99dc. Change-Id: I0462c50ec71d87bac226f83a0d0942871ef5a0e7
* Merge "Allow --meta on upload"Zuul2017-12-084-30/+24
|\
| * Allow --meta on uploadTim Burke2017-07-064-30/+24
| | | | | | | | | | | | | | Previously, the --meta option was only allowed on post or copy subcommands. Change-Id: I87bf0338c34b5e89aa946505bee68dbeb37d784c Closes-Bug: #1616238
* | Make tox runnable in a directory with spacesTim Burke2017-11-282-9/+10
| | | | | | | | | | | | | | | | | | | | | | I noticed a disturbing lack of quote-wrapping in change I7cb4b44952713752435e1faf0f63bf0d37e7dda6 but as I poked at it, I realized that trouble runs rampant. This seems to clean it all up, though I haven't tested *every* environment we define. Change-Id: I1454eb113e5bd9125d39f2e57e2ed96f6ddc42fc
* | Merge "Update tox_install.sh to align for sphinx jobs"Zuul2017-11-282-23/+21
|\ \
| * | Update tox_install.sh to align for sphinx jobsMonty Taylor2017-11-222-23/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The updates to the sphinx docs jobs in support of the updates to the PTI wound up exposing an unintended interface. There are two flavors of the tox_install.sh file out there, and we basically need to collapse them into one flavor. Update the tox_install.sh script to match the constraints-as-first-argument form. Change-Id: I7cb4b44952713752435e1faf0f63bf0d37e7dda6
* | | Remove setting of version/release from releasenotesAndreas Jaeger2017-11-161-8/+3
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release notes are version independent, so remove version/release values. We've found that projects now require the service package to be installed in order to build release notes, and this is entirely due to the current convention of pulling in the version information. Release notes should not need installation in order to build, so this unnecessary version setting needs to be removed. This is needed for new release notes publishing, see I56909152975f731a9d2c21b2825b972195e48ee8 and the discussion starting at http://lists.openstack.org/pipermail/openstack-dev/2017-November/124480.html . Change-Id: I623fe918c1e4ddafa93efc91ed550a365cec1cf0
* | Add pypy-devel for RPM-based systemsTim Burke2017-08-291-2/+3
| | | | | | | | | | | | | | | | Also, don't try to do any pypy stuff on Fedora -- apparently that's only available from the Everything repo instead of the stripped-down Server one the gate images use? I only wanted Fedora for py36 testing, anyway. Change-Id: Iba8142e4e1093cf7f7a9dcf782288364d43cb64d
* | Merge "Add support for versionless endpoints"Jenkins2017-08-292-2/+35
|\ \
| * | Add support for versionless endpointsChristian Schwede2017-06-132-2/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Newer deployments are using versionless Keystone endpoints, and most OpenStack clients already support this. This patch enables this for Swift: if an auth_url without any path component is found, it assumes a versionless endpoint will be used. In this case the v3 suffix will be appended to the path if none auth_version is set, and v2.0 is appended if auth_version requires v2. Closes-Bug: 1554885 Related-Bug: 1691106 Change-Id: If7ecb67776cb77828f93ad8278cc5040015216b7
* | | Trying out the new releasenotes jobsTim Burke2017-08-081-0/+1
| | | | | | | | | | | | | | | Change-Id: I96a29ab48cd7a349d0eb17efce7df097d4174cbe Depends-On: I5820bb2ffa0e3c65ac846ced97435b7c3086aefc
* | | Add releasenotes tox envTim Burke2017-08-088-0/+399
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After this, we need to * add release notes jobs for python-swiftclient in openstack-infra/project-config * add release notes links for python-swiftclient in openstack/releases For the corresponding change in the swift repo, see I4e5f1ce1fcfbb2943036c821a24a0b4a3a2d9fc8 Change-Id: Iea6ed2ee26873edb3ef10146cdc906cf1a236255
* | | 3.4.0 authors/changelog update3.4.0John Dickinson2017-07-263-0/+55
| | | | | | | | | | | | Change-Id: Ib6a7c97ff90f03a26fe7396c0104c5a0c483c226
* | | Allow for uploads from standard input.Timur Alperovich2017-07-265-10/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If "-" is passed in for the source, python-swiftclient will upload the object by reading the contents of the standard input. The object name option must be set, as well, and this cannot be used in conjunction with other files. This approach stores the entire contents as one object. A follow on patch will change this behavior to upload from standard input as SLO, unless the segment size is larger than the content size. Change-Id: I1a8be6377de06f702e0f336a5a593408ed49be02
* | | moved cli doc to the right place for new links processJohn Dickinson2017-07-262-1/+1
| | | | | | | | | | | | Change-Id: I5d2f681ba5ce1f95d006eb7208cdb388a64811c9
* | | Update the documentation link for doc migrationHangdong Zhang2017-07-244-6/+6
| | | | | | | | | | | | Change-Id: I1a5a354675b3ca6a7dbb5ab2dc78bf60209fa2b5
* | | merged openstack-manuals content with existing contentJohn Dickinson2017-07-211-116/+632
| | | | | | | | | | | | Change-Id: I05bc8f80daefbb32f32727550a9cbe43e9754e2f
* | | Buffer reads from diskTim Burke2017-07-113-19/+20
| | | | | | | | | | | | | | | | | | | | | Otherwise, Python defaults to 8k reads which seems kinda terrible. Change-Id: I3160626e947083af487fd1c3cb0aa6a62646527b Closes-Bug: #1671621
* | | Option to ignore mtime metadata entry.Christopher Bartz2017-07-065-2/+64
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the swiftclient upload command passes a custom metadata header for each object (called object-meta-mtime), whose value is the current UNIX timestamp. When downloading such an object with the swiftclient, the mtime header is parsed and passed as the atime and mtime for the newly created file. There are use-cases where this is not desired, for example when using tmp or scratch directories in which files older than a specific date are deleted. This commit provides a boolean option for ignoring the mtime header. Change-Id: If60b389aa910c6f1969b999b5d3b6d0940375686
* | Merge "Skip checksum validation on partial downloads"Jenkins2017-06-222-0/+11
|\ \
| * | Skip checksum validation on partial downloadsTim Burke2017-04-212-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | If we get back some partial content, we can't validate the MD5. That's OK. Change-Id: Ic1d65272190af0d3d982f3cd06833cac5c791a1e Closes-Bug: 1642021