46 Commits

Author SHA1 Message Date
Zuul
d800c177cc Merge "Replace Chinese punctuation with English punctuation" 2018-01-31 01:48:12 +00:00
Zuul
1485c13754 Merge "Remove the deprecated "giturl" option" 2018-01-30 23:06:52 +00:00
gaofei
10542d00ea Replace Chinese punctuation with English punctuation
Curly quotes(Chinese punctuation) usually input from Chinese input method.
When read from english context, it makes some confusion.

Change-Id: Ibd50299ee287c56ec4759ea8ff53d47d006144f8
2018-01-25 05:33:04 +00:00
Monty Taylor
bc6fb89951
Add a note about the cost of COPY for setting metadata
The pointer to using COPY to the same object as a mechanism to set only
a subset of the metadata, it does not mention that doing so results in
a full copy of the object in question on the backend.

Add a note so it's clear that there is a tradeoff involved.

Change-Id: I0c20a4909a6c3ff672f753d26cb9fb2f5f33d1f4
2018-01-16 11:32:12 -06:00
zhang.lei
39efb51d07 Remove the deprecated "giturl" option
From openstackdocstheme 1.18.0, valid Git URLs can be retrieved by
openstackdocstheme[1], we do not need giturl option anymore.

[1] https://review.openstack.org/532163

Change-Id: I579cebae6486d250915f936f0c1c61008471c089
2018-01-15 03:20:07 +00:00
Alistair Coles
582460ecf9 Document that x-delete-after takes precedence over x-delete-at
Change-Id: Ib2483444d3999e13ba83ca2edd3a8ef8e5c48548
2018-01-05 19:50:50 +00:00
Robert Francis
99b89aea10 Symlink implementation.
Add a symbolic link ("symlink") object support to Swift. This
object will reference another object. GET and HEAD
requests for a symlink object will operate on the referenced object.
DELETE and PUT requests for a symlink object will operate on the
symlink object, not the referenced object, and will delete or
overwrite it, respectively.
POST requests are *not* forwarded to the referenced object and should
be sent directly. POST requests sent to a symlink object will
result in a 307 Error.

Historical information on symlink design can be found here:
https://github.com/openstack/swift-specs/blob/master/specs/in_progress/symlinks.rst.
https://etherpad.openstack.org/p/swift_symlinks

Co-Authored-By: Thiago da Silva <thiago@redhat.com>
Co-Authored-By: Janie Richling <jrichli@us.ibm.com>
Co-Authored-By: Kazuhiro MIYAHARA <miyahara.kazuhiro@lab.ntt.co.jp>
Co-Authored-By: Kota Tsuyuzaki <tsuyuzaki.kota@lab.ntt.co.jp>

Change-Id: I838ed71bacb3e33916db8dd42c7880d5bb9f8e18
Signed-off-by: Thiago da Silva <thiago@redhat.com>
2017-12-13 21:26:12 +00:00
Tim Burke
c6d00fe22f api-ref: Fix container PUT response codes
Change-Id: I7b57b6ee7095105399518873f8ae59da63cd8ce5
Closes-Bug: #1549411
2017-09-11 15:03:12 +00:00
Jenkins
9fbda9946e Merge "Unify 'Content-Type' header key name in API reference" 2017-09-06 19:07:33 +00:00
Kazuhiro MIYAHARA
9fd9141f7d Unify 'Content-Type' header key name in API reference
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
2017-09-06 11:06:26 +00:00
Kazuhiro MIYAHARA
275da4c18e Fix bytes and name API reference of Container GET
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
2017-09-06 04:16:40 +00:00
Tim Burke
9f5aa3bbd7 api-ref: update docs links
Change-Id: I83da881f82faf340d0e394c79f7e9d4df7f34b04
2017-08-31 15:57:13 -07:00
Tim Burke
95ff34d4ed Add X-Copy-From-Account to api-ref
While Donagh was kind enough to add Destination-Account in the related
change, we still hadn't documented the PUT-with-X-Copy-From equivalent.

Change-Id: I156ae2d8664873d3f6cc1f742bf950913fd462b0
Related-Change: I315b4e550b7d10880fbc00fce9311127ba609c2d
Closes-Bug: 1367975
2017-07-12 22:30:43 +00:00
John Dickinson
cd39778824 add name_check to /info
Also removed a bunch of unnecessary unquotes. Just use path_info
instead (it's already unquoted).

Partial-Bug: #1670915

Change-Id: If1af43485b4708cab6c4b5d7f6f0a334d8752518
2017-03-21 10:58:41 +00:00
Tim Burke
b958466a72 More port number cleanup
Closes-Bug: #1671896
Related-Change: Ie4fee05b5f7e0c0879a7b42973bca459f7c85408
Change-Id: I18db1937a0991497027a4d096fb95cdda81f7d68
2017-03-10 18:28:04 +00:00
gengchc2
702c804887 Use https instead of http for git.openstack.org
Trivialfix

Change-Id: I4862d073adecf1cc5312a64795ad890eeddf774d
2017-02-07 11:28:30 +08:00
Christopher Bartz
51727c531a ISO 8601 timestamps for tempurl
With this commit, the tempurl middleware accepts (besides
the traditional unix timestamps) also timestamps according
to the format '%Y-%m-%dT%H:%M:%SZ' (one acceptable form of ISO 8601).
The idea is to make the tempurls more user-friendly,
and has been formulated here:

Change-Id: I346a0241060a9559d178b30e60c957792bbeb9f0
Implements: blueprint human-readable-tempurl-timestamp
2017-01-24 17:38:48 +01:00
Jenkins
fab96ed11a Merge "Confirm receipt of SLO PUT with etag" 2017-01-16 20:37:02 +00:00
Kota Tsuyuzaki
652276fea6 Support last modified on listing containers
For now, last modified timestamp is supported only on
object listing. (i.e. GET container)

For example:

GET container with json format results in like as:

[{"hash": "d41d8cd98f00b204e9800998ecf8427e", "last_modified":
"2015-06-10T04:58:23.460230", "bytes": 0, "name": "object",
"content_type": "application/octet-stream"}]

However, container listing (i.e. GET account) shows just a dict
consists of ("name", "bytes", "name") for each container.

For example:

GET accounts with json format result in like as:

[{"count": 0, "bytes": 0, "name": "container"}]

This patch is for supporting last_modified key in the container
listing results as well as object listing like as:

[{"count": 0, "bytes": 0, "name": "container", "last_modified":
"2015-06-10T04:58:23.460230"}]

This patch is changing just output for listing. The original
timestamp to show the last modified is already in container table
of account.db as a "put_timestamp" column.

Note that this patch *DOESN'T* change the put_timestamp semantics.
i.e. the last_modified timestamp will be changed only at both PUT
container and POST container.
(PUT object doesn't affect the timestamp)

Note that the tuple format of returning value from
swift.account.backend.AccountBroker.list_containers is now
(name, object_count, bytes_used, put_timestamp, 0)

* put_timestamp is added *

Original discussion was in working session at Vancouver Summit.
Etherpads are around here:

https://etherpad.openstack.org/p/liberty-swift-contributors-meetup
https://etherpad.openstack.org/p/liberty-container-listing-update

DocImpact

Change-Id: Iba0503916f1481a20c59ae9136436f40183e4c5b
2017-01-12 18:03:10 +00:00
Mahati Chamarthy
fd6edf7bc5 Confirm receipt of SLO PUT with etag
With a multipart-manifest PUT request, if client sends the md5 of the
segments' etags, a 422 Unprocessable Entity response is returned. This
patch fixes that and confirms the etag

Change-Id: I4598a2a3f16ca8727bb07bbb6d8efcfcae777796
Closes-Bug: #1213200
Co-Authored-By: Tim Burke <tim@swiftstack.com>
2016-12-23 01:40:54 +05:30
Tin Lam
07d3dd7c7f Added conditional headers to HEAD request documentation
Currently, conditional headers, e.g. If-Match, If-Modified-Since, etc.,
are listed for the GET objects API call, but not in the HEAD objects
call in the api-ref documentation.  This patch adds the missing headers
to the HEAD documentation.

Change-Id: Idd1c248cc27415d148a1b9a5eb2e95f25b8c4da0
Closes-Bug: #1630212
2016-12-09 14:59:40 -06:00
Jenkins
0873b7c03e Merge "Document access control lists (ACLs)" 2016-11-23 01:43:13 +00:00
Tim Burke
e8a5448b07 Add X-Openstack-Request-Id to Access-Control-Expose-Headers
Change-Id: Ib95a693042f0b3cf204033eb5957660cb3573dcf
Related-Change: I56cd4738808b99c0a08463f83c100be51a62db05
2016-11-16 12:39:12 -08:00
Tim Burke
40152f4242 Fix up X-Trans-Id-Extra docs
Previously, they would render as "X -Trans-Id-Extra"

Change-Id: Ibaf9b365467a2c91a0f03baed4d7bc36b0fa9967
2016-11-15 14:12:02 -08:00
Janie Richling
8e122c6fe8 Document X-Openstack-Request-Id in all responses
Swift returns `X-Openstack-Request-Id` for container and
object requests as well as account.  A couple api-ref docs are
missing this value in the response examples.

Change-Id: Ifcd67a620e04be5e92b43c7749ee4acb50bb171d
2016-11-15 13:15:59 -06:00
Donagh McCabe
c0fdc53b49 Document access control lists (ACLs)
Documents the syntax and meaning of container ACLs. Account ACLs
were already pretty well documented. However the account
ACL text was moved as part of this change.

TempAuth and keystoneauth have diffent ACLs. However, I decided
to describe both in one section/table because there are many
"examples" of ACLs in other documents, and it's better that
someone coming here from those sources become aware that the
specific ACL might not apply to them. In addition, the
referrer and .rlistings is common to both.

Some changes were also made to the api-ref document. The doc
and api-ref documents are published as seperate documents, so
the cross references from the api-ref section will not work
until this patch merges and the documents are rebuilt.

Change-Id: Icd2d6c278050c263b833ae76545c041f54fae68d
2016-11-08 14:17:24 +00:00
karen chan
d0fe922904 Mirror X-Trans-Id to X-Openstack-Request-Id
Many other OpenStack services use a `[X-]OpenStack-Request-Id` header
to return a unique identifier for the request.  Swift will now return
`X-Trans-Id` as well as `X-Openstack-Request-Id`.

Change-Id: I56cd4738808b99c0a08463f83c100be51a62db05
Closes-Bug: #1572786
2016-10-30 20:02:39 -07:00
Nguyen Phuong An
19426182af [api-ref] Remove temporary block in conf.py
The os-api-ref 1.0.0 is out. We can remove the support to older version now.
Reference:
6d41feb58d

Change-Id: I0b28cd3f6b5c393d63b9ab2b4dcd3b7b3c20f9b4
2016-10-06 16:50:17 +07:00
Jenkins
500a5128d2 Merge "Config logABug feature for Swift api-ref" 2016-09-28 13:17:35 +00:00
Jenkins
f1c3ceb48d Merge "Use separate headers for versioned_writes' stack and history modes" 2016-09-22 20:05:02 +00:00
Tim Burke
60a2fe0ba8 Use separate headers for versioned_writes' stack and history modes
Now, instead of saying

   X-Versions-Location: <container>
   X-Versions-Mode: history

clients should just say

   X-History-Location: <container>

Since we've never had a release featuring a user-settable
X-Versions-Mode header, support may be dropped and that is now ignored.

Change-Id: Icfd0f481d4e40dd5375c737190aea7ee8dbc3bf9
2016-09-21 16:42:27 -07:00
Jenkins
e07f9be8f5 Merge "api-ref: fix some header definitions" 2016-09-21 06:44:27 +00:00
Alistair Coles
cbfa79a159 api-ref: fix some header definitions
Clarify Content-Type header definition for listings.

Distinguish between request and response definitions for
X-Account-Meta-Temp-URL-Key* headers.

Insert X-Container-Meta-Quota-* headers missing from some
request/response definitions.

Improve X-Container-Meta-Access-Control-Expose-Headers
parameter formatting.

Distinguish between request and response definitions for
X-Container-Meta-Temp-URL-Key* headers.

Co-Authored-By: Christian Schwede <cschwede@redhat.com>
Change-Id: I8fc7610395973b520aa9ddd72c94e1eb75f602cd
Related-Change: I315b4e550b7d10880fbc00fce9311127ba609c2d
2016-09-20 14:30:27 +01:00
Jenkins
937bc73a72 Merge "Clean up api-ref examples" 2016-09-20 09:45:39 +00:00
Tim Burke
d40ff7098b Clean up api-ref examples
If we're going to talk about replacing an object, we should use the
same object name as the previous example.

Including a non-zero content-length on PUT but not providing a body
will timeout.

Not including the '-' in '-H' will make curl complain:

   Rebuilt URL to: H/
   * Could not resolve host: H
   * Closing connection 1

201 Created responses have content-length of zero, not 116.

Change-Id: Ifd878559ee4036e4893221c7968f53021f38e236
2016-09-19 15:47:20 -07:00
Jenkins
539c3d417c Merge "api-ref: clean up account listing examples" 2016-09-19 22:10:18 +00:00
Alistair Coles
5ec9a62f4d api-ref: clean up account listing examples
Move the account listing sample responses to follow the sample
requests, and to precede the request/response parameter definitions to
be consistent with other parts of the doc.

Related-Change: I315b4e550b7d10880fbc00fce9311127ba609c2d

Change-Id: Ia20acacd238db4a423b8cd89af1658222b4c5828
2016-09-19 09:46:06 +01:00
Alistair Coles
2355771d4b api-ref: Move repeated paragraph to an include file
Move repeated test re metadata header syntax to an include
file and make it be rendered as a note.

Also make already included text about metadata header value
encoding be a note.

Change-Id: I4795836587492954ad24dd5baaa5d668746d6040
2016-09-19 09:18:19 +01:00
Donagh McCabe
9ce596a5a6 Corrections for the API specifications in api-ref
Fixes a number of technical issues with the api-ref section
including:

- Added missing headers
- The header descriptions were made specific to whether they
  are used in requests or responses and the verb in question
  (example: Content-Length in object HEAD is the object size,
  not the response body length).
- Added references to API features such as bulk delete.
- Many typographical fixes (e.g., spaces in the middle
  of header names)
- Restored xml and json account/container listing
  examples.

The following areas were not updated and it is proposed
to defer them to a subsequent update. This is because
I don't have time or their merit is debatable:

- ACLs (as used in a Keystone context) are not
  described.
- Account create/delete is not described.
- I left List Endpoints as-is.

Change-Id: I315b4e550b7d10880fbc00fce9311127ba609c2d
2016-09-14 10:10:20 +01:00
Kazuhiro MIYAHARA
84b264baa8 Fix api reference of object GET request with Range parameter
In RFC 7233, response body size of range requests with parameter
'bytes=N-M' is (M - N + 1). And response of object GET request with
range parameter in current Swift implementation is according to the
RFC.  However, in current api reference explains that response body
size of object GET request with 'Range: bytes=10-15' is five
( != 15 - 10 + 1).
This patch fixes the api reference explanation.

Change-Id: I8371864f8e5adb42c1e56b7ea26c556ea1252728
2016-09-02 11:01:55 +09:00
Nguyen Phuong An
3f00148c6b Config logABug feature for Swift api-ref
Currently, Swift api-ref is not configured with logABug feature.
When users click "Report bug" button, it leads to "openstack-manuals"
which is default.

Change-Id: I3b6fb410000637ff03d99110d440de88a5adc30c
2016-08-31 14:41:30 +07:00
Jenkins
9d08d17b4f Merge "Add "history" mode to versioned_writes middleware" 2016-08-26 08:33:45 +00:00
Graham Hayes
aa893d9077 Get ready for os-api-ref sphinx theme change
Change-Id: Ib4aa4a26814273efafa3453237d18acf8cc966cb
2016-08-19 16:44:07 +01:00
Alistair Coles
cc2b2cf9c8 Improve doc for using container-sync with large objects
Clarify that synced segment container names must be the same
when syncing large objects.

Also add multipart-menifest query string option to API ref
for object GETs.

Change-Id: Ib2d2a1e6c1e5eff215fc75c2b49e7d6758b17b7e
Partial-Bug: #1613681
Closes-Bug: #1613316
2016-08-16 16:35:53 +01:00
Tim Burke
c7283be4fe Add "history" mode to versioned_writes middleware
This change introduces the concept of a "versioning mode" for
versioned_writes. The following modes are supported:

 * stack

    When deleting, check whether any previous versions exist in the
    versions container. If none is found, the object is deleted. If the
    most-recent version in the versions container is not a delete
    marker, it is copied into the versioned container (overwriting the
    current version if one exists) and then deleted from the versions
    container. This preserves the previous behavior.

    If the most-recent version in the versions container is a delete
    marker and a current version exists in the versioned container, the
    current version is deleted. If the most-recent version in the
    versions container is a delete marker and no current version exists
    in the versioned container, we copy the next-most-recent version
    from the versions container into the versioned container (assuming
    it exists and is not a delete marker) and delete both the
    most-recent version (i.e., the delete marker) and the just-copied
    next-most-recent version from the versions container.

    With this mode, DELETEs to versioned containers "undo" operations
    on containers. Previously this was limited to undoing PUTs, but now
    it will also undo DELETEs performed while in "history" mode.

 * history

    When deleting, check whether a current version exists in the
    versioned container. If one is found, it is copied to the versions
    container. Then an empty "delete marker" object is also put into the
    versions container; this records when the object was deleted.
    Finally, the original current version is deleted from the versioned
    container. As a result, subsequent GETs or HEADs will return a 404,
    and container listings for the versioned container do not include
    the object.

    With this mode, DELETEs to versioned containers behave like DELETEs
    to other containers, but with a history of what has happened.

Clients may specify (via a new X-Versions-Mode header) which mode a
container should use. By default, the existing "stack" mode is used.

Upgrade consideration:
======================

Clients should not use the "history" mode until all proxies in the
cluster have been upgraded. Attempting to use the "history" mode during
a rolling upgrade may result in some requests being served by proxies
running old code (which necessarily uses the "stack" mode), leading to
data loss.

Change-Id: I555dc17fefd0aa9ade681aa156da24e018ebe74b
2016-08-15 21:04:29 -07:00
Cloud User
4b13879680 Adds migrated API reference files
This brings in RST plus YAML files, migrated from the source for [0].

The migration explanation is found on the openstack-dev mailing list [1].

Project instruction is in the OpenStack Documentation Contributor Guide [2].

A patch for publishing this source is in [3].

The conf.py and the tox environment are standard across other projects.

[0]http://developer.openstack.org/api-ref-objectstorage-v1.html
[1]http://lists.openstack.org/pipermail/openstack-dev/2016-May/093765.html
[2]http://docs.openstack.org/contributor-guide/api-guides.html
[3]https://review.openstack.org/#/c/313015/

Change-Id: Ifebc65b188c4f2ba35b61c0deae5ec24401df7f9
2016-06-21 19:14:22 +02:00