)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"4762df13f4284f187a822d8b3692212ec33a263a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Diane Fleming \u003cdiflemin@cisco.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-05-31 20:13:12 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add side-by-side comparison table of v2 and v3 APIs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ib17ecb78d09822b5288ef82f71b433110e9a9f84"},{"line_number":10,"context_line":"Closes-Bug: #1194885"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7a016987_34b8b529","line":7,"updated":"2015-06-01 02:46:00.000000000","message":"This change does much more than add this comparison.\n\nPlease add a commit message.","commit_id":"6c11816f3aaf75aa802c8ccb168633bd8dd3654d"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4afd0b0a3de88509617a63e0f63ab375157bdcb2","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Also, update \"Keystone\" to \"Identity service\""},{"line_number":10,"context_line":"Fixed one mention of v2 to v2.0"},{"line_number":11,"context_line":"Fixed heading nesting"},{"line_number":12,"context_line":"Moved comparison document to separate document"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ib17ecb78d09822b5288ef82f71b433110e9a9f84"},{"line_number":15,"context_line":"Closes-Bug: #1194885"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"fa32b979_7e24bc0b","line":12,"updated":"2015-06-19 02:25:11.000000000","message":"None of these are being done now.","commit_id":"642c9684c65bbd07ad2adac0772ff1ac77759266"}],"api/v3/identity-api-v3-v2-comparison.rst":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6bc5aa03fcdab78e1cfe2a81a077156146a0f623","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    curl http://localhost:5000/v3/roles -H \"X-AUTH-TOKEN: ADMIN\" \\"},{"line_number":114,"context_line":"      -H \"Content-type: application/json\" \\"},{"line_number":115,"context_line":"      -d \u0027{\"role\":{\"name\":\"SysAdmin\",\"description\":\"Role for sys admin\"}}\u0027 | python -mjson.tool"}],"source_content_type":"text/x-rst","patch_set":23,"id":"fa32b979_f182e451","line":115,"updated":"2015-06-16 04:09:13.000000000","message":"Remove the pipe at the end here","commit_id":"1b9d82fb1482e65bd5c04fc795da919d01802579"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8124feb4941e1ef34a5e8cce64f700cd22bb0bdc","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"  curl http://localhost:5000/v3/users \\"},{"line_number":86,"context_line":"      -d \u0027{\"user\": {\"default_project_id\": \"263fd9\",\"description\": \\"},{"line_number":87,"context_line":"           \"jqsmith user\",\"domain_id\": \"1789d1\",\"email\": \\"},{"line_number":88,"context_line":"           \"john.smith@example.org\",\"enabled\": true,\"name\": \\"},{"line_number":89,"context_line":"           \"jqsmith\",\"password\": \"secretsecret\"}}\u0027 \\"},{"line_number":90,"context_line":"      -H \"Content-type: application/json\" -H \"X-Auth-Token: ADMIN\""}],"source_content_type":"text/x-rst","patch_set":24,"id":"fa32b979_2a7627d7","line":87,"updated":"2015-06-18 01:12:59.000000000","message":"\"email\" isn\u0027t an attribute for users according to the spec.","commit_id":"e909ec9fb6dac0f54397ff44e689ae89f956e13f"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"29e52379124ee69f1a9fb93a98b08103c28bc7a3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"OpenStack Identity API v3 and v2.0 comparison"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"This document compares several Identity API v3 and v2.0 operations."},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"API v3 adds the domains feature."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-rst","patch_set":25,"id":"fa32b979_fb7a2f76","line":4,"updated":"2015-06-18 17:49:19.000000000","message":"Is this intend to be a complete list or just a few examples? For a complete list, a table with side-by-side comparison would be awesomer.","commit_id":"7f8a8c0d2a27a98de70a9cf7820c65a2d6647172"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"29e52379124ee69f1a9fb93a98b08103c28bc7a3","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"::"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    curl http://localhost:5000/v3/projects -H \"X-Auth-Token: ADMIN\" \\"},{"line_number":43,"context_line":"      -H \"Content-type: application/json\" \\"},{"line_number":44,"context_line":"      -d \u0027{\"project\":{\"description\": \"project02 project\",\"domain_id\": \"123\",\"enabled\": \\"},{"line_number":45,"context_line":"           true,\"name\": \"project02\"}}\u0027"}],"source_content_type":"text/x-rst","patch_set":25,"id":"fa32b979_601e6a71","line":42,"updated":"2015-06-18 17:49:19.000000000","message":"we don\u0027t use port 5000 for the v3 APIs anymore\n\nhttps://github.com/openstack/keystone-specs/blob/master/api/v3/identity-api-v3.rst\n\nExample should properly reflect that.","commit_id":"7f8a8c0d2a27a98de70a9cf7820c65a2d6647172"}],"api/v3/identity-api-v3.rst":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"69c03561f66802a8e6f4165549b202df9fef01d3","unresolved":false,"context_lines":[{"line_number":86,"context_line":"- Partial updates are performed using the HTTP ``PATCH`` method"},{"line_number":87,"context_line":"- Token ID values no longer appear in URLs"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Side-by-side comparison of OpenStack Identity API v3 and v2"},{"line_number":90,"context_line":"-----------------------------------------------------------"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"+--------------------+--------------------+--------------------+--------------------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_d89d1dbd","line":89,"updated":"2015-05-31 02:07:00.000000000","message":"v2.0*","commit_id":"70535bcedde40dda72456a4b073b4c8cdb3b332e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"69c03561f66802a8e6f4165549b202df9fef01d3","unresolved":false,"context_lines":[{"line_number":95,"context_line":"|                    | client (API v2.0)  |                    |                    |"},{"line_number":96,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":97,"context_line":"| List users. Lists  | keystone --token   | curl               | curl               |"},{"line_number":98,"context_line":"| all users to which | ADMIN --endpoint   | `http://locahost:3 | `http://localhost: |"},{"line_number":99,"context_line":"| the supplied token | http://localhost:3 | 5357/v2.0/users \u003ch | 35357/v3/users \u003cht |"},{"line_number":100,"context_line":"| has visibility.    | 5357/v2.0/         | ttp://166.78.146.1 | tp://166.78.146.14 |"},{"line_number":101,"context_line":"|                    | user-list          | 47:35357/v2.0/user | 7:35357/v3/users\u003e` |"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_58b24d4d","line":98,"updated":"2015-05-31 02:07:00.000000000","message":"the latter part of the feature explanation isn\u0027t necessary or true","commit_id":"70535bcedde40dda72456a4b073b4c8cdb3b332e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"69c03561f66802a8e6f4165549b202df9fef01d3","unresolved":false,"context_lines":[{"line_number":98,"context_line":"| all users to which | ADMIN --endpoint   | `http://locahost:3 | `http://localhost: |"},{"line_number":99,"context_line":"| the supplied token | http://localhost:3 | 5357/v2.0/users \u003ch | 35357/v3/users \u003cht |"},{"line_number":100,"context_line":"| has visibility.    | 5357/v2.0/         | ttp://166.78.146.1 | tp://166.78.146.14 |"},{"line_number":101,"context_line":"|                    | user-list          | 47:35357/v2.0/user | 7:35357/v3/users\u003e` |"},{"line_number":102,"context_line":"|                    |                    | s\u003e`__              | __                 |"},{"line_number":103,"context_line":"|                    |                    | -H \"X-Auth-Token:  | -H \"X-Auth-Token:  |"},{"line_number":104,"context_line":"|                    |                    | ADMIN\"             | ADMIN\"             |"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_78a62910","line":101,"updated":"2015-05-31 02:07:00.000000000","message":"for v3 this call should be made against port 5000","commit_id":"70535bcedde40dda72456a4b073b4c8cdb3b332e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"69c03561f66802a8e6f4165549b202df9fef01d3","unresolved":false,"context_lines":[{"line_number":134,"context_line":"|                    | ADMIN --endpoint   | `http://localhost: |                    |"},{"line_number":135,"context_line":"| Name is a required | http://localhost:3 | 35357/v2.0 \u003chttp:/ |                    |"},{"line_number":136,"context_line":"| attribute in       | 5357/v2.0/         | /166.78.146.147:35 |                    |"},{"line_number":137,"context_line":"| Identity v2, but   | user-create --name | 357/v2.0/tenants\u003e` |                    |"},{"line_number":138,"context_line":"| user name is       | joe --tenant\\_id   | __/users           |                    |"},{"line_number":139,"context_line":"| optional.          | 26772165df7f4e4187 | -d                 |                    |"},{"line_number":140,"context_line":"|                    | 06a7ab875b6312     | \u0027{\"user\":{\"usernam |                    |"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_18b85529","line":137,"updated":"2015-05-31 02:07:00.000000000","message":"v2.0","commit_id":"70535bcedde40dda72456a4b073b4c8cdb3b332e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"69c03561f66802a8e6f4165549b202df9fef01d3","unresolved":false,"context_lines":[{"line_number":141,"context_line":"| Case-sensitive     | --pass password1   | e\":\"joe\",\"email\":\" |                    |"},{"line_number":142,"context_line":"| user name.         | --email            | joe@openstack.org\\ |                    |"},{"line_number":143,"context_line":"|                    | joe@joe.com        |  \",\"enabled\":true, |                    |"},{"line_number":144,"context_line":"| In v2, another API | --enabled true     | \"name\":\"Joe\",      |                    |"},{"line_number":145,"context_line":"| call is needed to  |                    | \"OS-KSADM\":\"secret |                    |"},{"line_number":146,"context_line":"| associate user     |                    | e\"}}\u0027              |                    |"},{"line_number":147,"context_line":"| with tenant.       |                    | -H \"Content-type:  |                    |"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_38ad51e9","line":144,"updated":"2015-05-31 02:07:00.000000000","message":"v2.0*","commit_id":"70535bcedde40dda72456a4b073b4c8cdb3b332e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"69c03561f66802a8e6f4165549b202df9fef01d3","unresolved":false,"context_lines":[{"line_number":154,"context_line":"|                    | ADMIN --endpoint   | `http://localhost: | `http://localhost: |"},{"line_number":155,"context_line":"| In v3, a tenant is | http://localhost:3 | 35357/v2.0/tenants | 35357/v3/projects  |"},{"line_number":156,"context_line":"| known as a         | 5357/v2.0/         |  \u003chttp://166.78.14 | \u003chttp://166.78.146 |"},{"line_number":157,"context_line":"| project.           | tenant-create      | 6.147:35357/v2.0/t | .147:35357/v3/proj |"},{"line_number":158,"context_line":"|                    | --name tenant01    | enants\u003e`__         | ects\u003e`__           |"},{"line_number":159,"context_line":"| In v3, v2 tenants  | --description      | -H \"X-Auth-Token:  | -H \"X-Auth-Token:  |"},{"line_number":160,"context_line":"| are seen as        | \"tenant for tenant | ADMIN\" -X POST -d  | ADMIN\" -H          |"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_f8b21948","line":157,"updated":"2015-05-31 02:07:00.000000000","message":"use port 5000 for v3","commit_id":"70535bcedde40dda72456a4b073b4c8cdb3b332e"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"4762df13f4284f187a822d8b3692212ec33a263a","unresolved":false,"context_lines":[{"line_number":121,"context_line":"at the end of the document. The examples are intended to be \"realistic\""},{"line_number":122,"context_line":"representations of actual requests and responses you could expect from an"},{"line_number":123,"context_line":"implementation of the API. Specifically, the JSON should be syntactically"},{"line_number":124,"context_line":"valid and use data that is self-consistent with related calls."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The features described by this document are intended to be applicable to all"},{"line_number":127,"context_line":"implementations of the API. If a particular implementation or deployment"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a016987_19529435","line":124,"updated":"2015-06-01 02:46:00.000000000","message":"Why break this line ? It has less than 80 chars.","commit_id":"6c11816f3aaf75aa802c8ccb168633bd8dd3654d"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"4762df13f4284f187a822d8b3692212ec33a263a","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"::"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"  keystone --token ADMIN --endpoint http://localhost:35357/v2.0/user-list"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"cURL (API v2.0)"},{"line_number":163,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a016987_b47a6575","line":160,"updated":"2015-06-01 02:46:00.000000000","message":"I am not sure we need/want to add documentation on this CLI, as it\u0027s deprecated and about to be removed.","commit_id":"6c11816f3aaf75aa802c8ccb168633bd8dd3654d"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"4762df13f4284f187a822d8b3692212ec33a263a","unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":"::"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"  keystone --token ADMIN "},{"line_number":186,"context_line":"    --endpoint http://localhost:35357/v2.0/ user-create "},{"line_number":187,"context_line":"    --name joe --tenant_id 26772165df7f4e418706a7ab875b6312 "},{"line_number":188,"context_line":"    --pass password1 --email joe@joe.com --enabled true"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a016987_f9be9863","line":185,"updated":"2015-06-01 02:46:00.000000000","message":"Need to remove trailing whitespace all over this change.","commit_id":"6c11816f3aaf75aa802c8ccb168633bd8dd3654d"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"4762df13f4284f187a822d8b3692212ec33a263a","unresolved":false,"context_lines":[{"line_number":290,"context_line":"root of the API. For example, ``/v3/policies``."},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"TCP port 35357 is designated by the Internet Assigned Numbers Authority"},{"line_number":293,"context_line":"(\"IANA\") for use by OpenStack Identity v2.0 services. Example API requests and"},{"line_number":294,"context_line":"responses in this document therefore assume that the Identity service"},{"line_number":295,"context_line":"implementation is deployed at the root of ``http://identity:35357/``."},{"line_number":296,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a016987_993c44e2","line":293,"updated":"2015-06-01 02:46:00.000000000","message":"35357 is also available on v3 API.","commit_id":"6c11816f3aaf75aa802c8ccb168633bd8dd3654d"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"4762df13f4284f187a822d8b3692212ec33a263a","unresolved":false,"context_lines":[{"line_number":558,"context_line":"  Matches if the attribute contains the characters specified, with the"},{"line_number":559,"context_line":"  comparison being case-insensitive."},{"line_number":560,"context_line":""},{"line_number":561,"context_line":"  Inexact filters specified for non-string attributes is ignored."},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"Show entity details"},{"line_number":564,"context_line":"^^^^^^^^^^^^^^^^^^^"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a016987_d404c115","line":561,"updated":"2015-06-01 02:46:00.000000000","message":"Shouldn\u0027t be \u0027are\u0027 instead of \u0027is\u0027, since we are talking about \u0027inexact filters\u0027 ?","commit_id":"6c11816f3aaf75aa802c8ccb168633bd8dd3654d"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"4762df13f4284f187a822d8b3692212ec33a263a","unresolved":false,"context_lines":[{"line_number":1088,"context_line":"*New in version 3.2*"},{"line_number":1089,"context_line":""},{"line_number":1090,"context_line":"Region entities represent a general division of an OpenStack deployment. A"},{"line_number":1091,"context_line":"region may have zero or more sub-regions associated with it, making a tree-"},{"line_number":1092,"context_line":"like structured hierarchy possible for the OpenStack deployment."},{"line_number":1093,"context_line":""},{"line_number":1094,"context_line":"The concept of a region has no geographical connotation to it. Implementers"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a016987_341c3569","line":1091,"updated":"2015-06-01 02:46:00.000000000","message":"Why break this line ? It has less than 80 chars.","commit_id":"6c11816f3aaf75aa802c8ccb168633bd8dd3654d"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"4762df13f4284f187a822d8b3692212ec33a263a","unresolved":false,"context_lines":[{"line_number":1277,"context_line":""},{"line_number":1278,"context_line":"  The ``methods`` attribute indicates the accumulated set of authentication"},{"line_number":1279,"context_line":"  methods used to obtain the token. For example, if the token was obtained by"},{"line_number":1280,"context_line":"  ``password`` authentication, It contains ``password``. Later, if the"},{"line_number":1281,"context_line":"  token is exchanged using the ``token`` authentication method one or more"},{"line_number":1282,"context_line":"  times, the subsequently created tokens contain both ``password`` and"},{"line_number":1283,"context_line":"  ``token`` in their ``methods`` attribute."}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a016987_b41ee55c","line":1280,"updated":"2015-06-01 02:46:00.000000000","message":"Should be \u0027it\u0027 instead of \u0027It\u0027.","commit_id":"6c11816f3aaf75aa802c8ccb168633bd8dd3654d"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"4762df13f4284f187a822d8b3692212ec33a263a","unresolved":false,"context_lines":[{"line_number":1528,"context_line":"*New in version 3.4*"},{"line_number":1529,"context_line":""},{"line_number":1530,"context_line":"By default all core resources defined by the v3 API should be considered as"},{"line_number":1531,"context_line":"stable and current. However, the JSON home response document indicates any"},{"line_number":1532,"context_line":"variance to this in the ``status`` property of the ``hints`` property of a"},{"line_number":1533,"context_line":"given resource."},{"line_number":1534,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a016987_f44fbd68","line":1531,"updated":"2015-06-01 02:46:00.000000000","message":"We should choose between \u0027JSON Home\u0027 and \u0027JSON home\u0027.\nMost of the occurrences define it as \u0027JSON Home\u0027.","commit_id":"6c11816f3aaf75aa802c8ccb168633bd8dd3654d"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"4762df13f4284f187a822d8b3692212ec33a263a","unresolved":false,"context_lines":[{"line_number":1552,"context_line":"``stable`` (which is the default). These values"},{"line_number":1553,"context_line":"have the following meanings:"},{"line_number":1554,"context_line":""},{"line_number":1555,"context_line":"- ``deprecated``: The resource has been marked as deprecated and is"},{"line_number":1556,"context_line":"  removed in a future release. Clients using such a resource should"},{"line_number":1557,"context_line":"  plan to migrate to more current resources as soon as possible."},{"line_number":1558,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a016987_7444ed48","line":1555,"updated":"2015-06-01 02:46:00.000000000","message":"\u0027is removed\u0027 ? I think \u0027will be removed\u0027 was better.","commit_id":"6c11816f3aaf75aa802c8ccb168633bd8dd3654d"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"4762df13f4284f187a822d8b3692212ec33a263a","unresolved":false,"context_lines":[{"line_number":1557,"context_line":"  plan to migrate to more current resources as soon as possible."},{"line_number":1558,"context_line":""},{"line_number":1559,"context_line":"- ``experimental``: The resource is valid and can be used but is still"},{"line_number":1560,"context_line":"  maturing. While every attempt is made to maintain the resource as is"},{"line_number":1561,"context_line":"  ahead of being marked as stable, it is possible that changes may need to"},{"line_number":1562,"context_line":"  be made."},{"line_number":1563,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a016987_344af555","line":1560,"updated":"2015-06-01 02:46:00.000000000","message":"Ditto.","commit_id":"6c11816f3aaf75aa802c8ccb168633bd8dd3654d"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"4762df13f4284f187a822d8b3692212ec33a263a","unresolved":false,"context_lines":[{"line_number":1616,"context_line":"nottingham-json-home-03\u003e`__ for a description of the JSON Home document"},{"line_number":1617,"context_line":"format."},{"line_number":1618,"context_line":""},{"line_number":1619,"context_line":"The JSON home document returned includes all the core components and the"},{"line_number":1620,"context_line":"resources for the enabled extensions. Resources for disabled extensions are"},{"line_number":1621,"context_line":"not included."},{"line_number":1622,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a016987_f4769da2","line":1619,"updated":"2015-06-01 02:46:00.000000000","message":"Same as L1531:\n\nWe should choose between \u0027JSON Home\u0027 and \u0027JSON home\u0027.\nMost of the occurrences define it as \u0027JSON Home\u0027.","commit_id":"6c11816f3aaf75aa802c8ccb168633bd8dd3654d"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"14ab9a960a61043f89fe1891abd897f28ca307d6","unresolved":false,"context_lines":[{"line_number":71,"context_line":"These features are considered stable as of February 20, 2013."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"- Former \"Service\" and \"Admin\" APIs (including CRUD operations previously"},{"line_number":74,"context_line":"  defined in the v2.0 OS-KSADM extension) are consolidated into a single core API"},{"line_number":75,"context_line":"- \"Tenants\" are now known as \"projects\""},{"line_number":76,"context_line":"- \"Groups\": a container representing a collection of users"},{"line_number":77,"context_line":"- \"Domains\": a high-level container for projects, users and groups"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5afe65bd_f9e89f18","line":74,"updated":"2015-06-01 17:07:45.000000000","message":"This is failing the automated tests; line too long (\u003e 79).\n\nhttp://logs.openstack.org/27/187027/14/check/gate-keystone-specs-python27/0c9d352/console.html#_2015-06-01_17_00_36_084","commit_id":"95557b98876387cb3b6145fd3e0f79cbf9df85aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"bd4b5782be5c0898294abf6f2871c01c423332c2","unresolved":false,"context_lines":[{"line_number":94,"context_line":"This section compares several Identity API v3 and v2.0 operations."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"API v3 adds the domains feature and API v2.0 does not have corresponding"},{"line_number":97,"context_line":"functionality. Domains represent collections of users, groups, and projects."},{"line_number":98,"context_line":"Each user, group, and project is owned by exactly one domain. Users, however,"},{"line_number":99,"context_line":"can be associated with multiple projects by granting roles to the user on a"},{"line_number":100,"context_line":"project, including projects owned by other domains."}],"source_content_type":"text/x-rst","patch_set":16,"id":"3afb71cf_b26e802d","line":97,"updated":"2015-06-07 14:38:35.000000000","message":"A note could be added here that when using API v2.0, all operations are on a default domain. So for example if a user, group, or project is created it\u0027s in the default domain.","commit_id":"992e0a7734036f6e1d6eb75e883cd3089d970db0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"bd4b5782be5c0898294abf6f2871c01c423332c2","unresolved":false,"context_lines":[{"line_number":96,"context_line":"API v3 adds the domains feature and API v2.0 does not have corresponding"},{"line_number":97,"context_line":"functionality. Domains represent collections of users, groups, and projects."},{"line_number":98,"context_line":"Each user, group, and project is owned by exactly one domain. Users, however,"},{"line_number":99,"context_line":"can be associated with multiple projects by granting roles to the user on a"},{"line_number":100,"context_line":"project, including projects owned by other domains."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Each domain defines a namespace where certain API-visible name attributes"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3afb71cf_f2d198ce","line":99,"updated":"2015-06-07 14:38:35.000000000","message":"Users can be associated with multiple domains in the same way. The concepts of ownership and association are orthogonal.","commit_id":"992e0a7734036f6e1d6eb75e883cd3089d970db0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"bd4b5782be5c0898294abf6f2871c01c423332c2","unresolved":false,"context_lines":[{"line_number":100,"context_line":"project, including projects owned by other domains."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Each domain defines a namespace where certain API-visible name attributes"},{"line_number":103,"context_line":"exist, which affects whether those names must be globally unique or unique"},{"line_number":104,"context_line":"within that domain. In the Identity API v3, the uniqueness of these attributes"},{"line_number":105,"context_line":"is as follows:"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"3afb71cf_92fee436","line":103,"updated":"2015-06-07 14:38:35.000000000","message":"this sentence doesn\u0027t make sense to me... what\u0027s an API-visible name attribute? Nothing has multiple name attributes as far as I know.","commit_id":"992e0a7734036f6e1d6eb75e883cd3089d970db0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"bd4b5782be5c0898294abf6f2871c01c423332c2","unresolved":false,"context_lines":[{"line_number":128,"context_line":"Add user"},{"line_number":129,"context_line":"^^^^^^^^"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"In Identity v2.0, name is a required attribute but user name is optional. The"},{"line_number":132,"context_line":"user name is case sensitive. You must make another API call to associate a"},{"line_number":133,"context_line":"user with a tenant."},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"3afb71cf_3264d020","line":131,"updated":"2015-06-07 14:38:35.000000000","message":"The v2.0 API docs only have name[1]. username isn\u0027t mentioned at all. I assume this is a value stored in the \"extras\" column since any unknown values will be stored there. This works the same in v3 as it does in v2.\n\n[1] http://developer.openstack.org/api-ref-identity-admin-v2.html#admin-addUser","commit_id":"992e0a7734036f6e1d6eb75e883cd3089d970db0"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"7023966ec5fbfbf782ed8f48668c23ca5d6cab85","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"In Identity v2.0, name is a required attribute but user name is optional. The"},{"line_number":132,"context_line":"user name is case sensitive. You must make another API call to associate a"},{"line_number":133,"context_line":"user with a tenant."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"cURL (API v2.0)"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"3afb71cf_92f4a487","line":133,"updated":"2015-06-07 14:22:06.000000000","message":"So, what is the difference to v3 here? Or is it the same","commit_id":"992e0a7734036f6e1d6eb75e883cd3089d970db0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"bd4b5782be5c0898294abf6f2871c01c423332c2","unresolved":false,"context_lines":[{"line_number":137,"context_line":"::"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"  curl http://localhost:35357/v2.0/users \\"},{"line_number":140,"context_line":"      -d \u0027{\"user\":{\"username\":\"joe\",\"email\":\"joe@openstack.org\",\"enabled\":true, \"name\":\"Joe\", \"OS-KSADM\":\"secrete\"}}\u0027 \\"},{"line_number":141,"context_line":"      -H \"Content-type: application/json\" -H \"X-Auth-Token: ADMIN\""},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"cURL (API v3)"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3afb71cf_32329011","line":140,"updated":"2015-06-07 14:38:35.000000000","message":"if this is supposed to be equivalent to the v3 example, then the request JSON should have \"tenantId\": \"263fd9\" to match the default_project_id.","commit_id":"992e0a7734036f6e1d6eb75e883cd3089d970db0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"bd4b5782be5c0898294abf6f2871c01c423332c2","unresolved":false,"context_lines":[{"line_number":148,"context_line":"      -d \u0027{\"user\": {\"default_project_id\": \"263fd9\",\"description\": \"Jim Doe\u0027s user\",\"domain_id\": \"1789d1\",\"email\": \"jdoe@example.com\",\"enabled\": true,\"name\": \"James Doe\",\"password\": \"secretsecret\"}}\u0027 \\"},{"line_number":149,"context_line":"      -X POST -H \"Content-type: application/json\" -H \"X-Auth-Token: ADMIN\""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Add tenant (or project)"},{"line_number":152,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Identity v2.0 tenants are visible as projects in Identity v3, and Identity v3"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3afb71cf_d23e9cd9","line":151,"updated":"2015-06-07 14:38:35.000000000","message":"Change \"Add\" to \"Create\" to use the common term.","commit_id":"992e0a7734036f6e1d6eb75e883cd3089d970db0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"bd4b5782be5c0898294abf6f2871c01c423332c2","unresolved":false,"context_lines":[{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    curl http://localhost:5000/v3/roles -H \"X-AUTH-TOKEN: ADMIN\" \\"},{"line_number":214,"context_line":"      -H \"Content-type: application/json\" \\"},{"line_number":215,"context_line":"      -d \u0027{\"role\":{\"name\":\"SysAdmin\",\"description\":\"Sys admin v3\"}}\u0027 | python -mjson.tool"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"Document Overview"},{"line_number":218,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3afb71cf_7207e81c","line":215,"updated":"2015-06-07 14:38:35.000000000","message":"use the same description. the results of the operation in v3 is exactly the same as for v2.","commit_id":"992e0a7734036f6e1d6eb75e883cd3089d970db0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"bd4b5782be5c0898294abf6f2871c01c423332c2","unresolved":false,"context_lines":[{"line_number":284,"context_line":"service implementation is deployed at the root of ``http://identity:35357/``."},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"Headers"},{"line_number":287,"context_line":"^^^^^^^"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"- ``X-Auth-Token``"},{"line_number":290,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"3afb71cf_b5142a44","line":287,"updated":"2015-06-07 14:38:35.000000000","message":"the cleanup work should be done as a separate commit.","commit_id":"992e0a7734036f6e1d6eb75e883cd3089d970db0"},{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"3c2221d7c042c14715f983206a367b34cf029804","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"::"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"  curl http://localhost:5000/v3/users -H \"X-Auth-Token: ADMIN\""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Add user"},{"line_number":126,"context_line":"^^^^^^^^"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3afb71cf_1aff8635","line":123,"updated":"2015-06-08 18:13:52.000000000","message":"Ideally we should mention, there is no list_users across all domains in v3. ( unless sql is the only identity driver)  It is always list_users for the domain","commit_id":"7e8f5a4e232fbe56b118197b09407b146829ed4c"},{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"3c2221d7c042c14715f983206a367b34cf029804","unresolved":false,"context_lines":[{"line_number":121,"context_line":"::"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"  curl http://localhost:5000/v3/users -H \"X-Auth-Token: ADMIN\""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Add user"},{"line_number":126,"context_line":"^^^^^^^^"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"3afb71cf_da4a0eac","line":124,"updated":"2015-06-08 18:13:52.000000000","message":"Can we  just go with the port 35357 everywhere?  In v3 , port doesn\u0027t make any difference. Also 35357 is more preferable to 5000 as 5000 is in restricted range. I also believe 35357 is registered for keystone","commit_id":"7e8f5a4e232fbe56b118197b09407b146829ed4c"},{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"3c2221d7c042c14715f983206a367b34cf029804","unresolved":false,"context_lines":[{"line_number":142,"context_line":"::"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"  curl http://localhost:5000/v3/users \\"},{"line_number":145,"context_line":"      -d \u0027{\"user\": {\"default_project_id\": \"263fd9\",\"description\": \"jqsmith user\",\"domain_id\": \"1789d1\",\"email\": \"john.smith@example.org\",\"enabled\": true,\"name\": \"jqsmith\",\"password\": \"secretsecret\"}}\u0027 \\"},{"line_number":146,"context_line":"      -X POST -H \"Content-type: application/json\" -H \"X-Auth-Token: ADMIN\""},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Create tenant (or project)"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3afb71cf_9a993622","line":145,"updated":"2015-06-08 18:13:52.000000000","message":"Does v3 uses default project? I think it is v2 feature","commit_id":"7e8f5a4e232fbe56b118197b09407b146829ed4c"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0af73d0260182709b1d4f3bf5a9070708bfcdafe","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"::"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"  curl http://localhost:35357/v3/users -H \"X-Auth-Token: ADMIN\""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Add user"},{"line_number":128,"context_line":"^^^^^^^^"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3afb71cf_63054a0f","line":125,"updated":"2015-06-10 17:20:36.000000000","message":"we want to encourage clients using the v3 APIs use port 5000","commit_id":"dcd179fe3dccf28f3804b4ed369e8343d9cb2289"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0af73d0260182709b1d4f3bf5a9070708bfcdafe","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"  curl http://localhost:35357/v3/users -H \"X-Auth-Token: ADMIN\""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Add user"},{"line_number":128,"context_line":"^^^^^^^^"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"In API v2.0, you must make another API call to associate a user with a tenant."}],"source_content_type":"text/x-rst","patch_set":19,"id":"3afb71cf_c3619ed4","line":127,"updated":"2015-06-10 17:20:36.000000000","message":"Create user","commit_id":"dcd179fe3dccf28f3804b4ed369e8343d9cb2289"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0af73d0260182709b1d4f3bf5a9070708bfcdafe","unresolved":false,"context_lines":[{"line_number":147,"context_line":"      -d \u0027{\"user\": {\"default_project_id\": \"263fd9\",\"description\": \"jqsmith user\",\"domain_id\": \"1789d1\",\"email\": \"john.smith@example.org\",\"enabled\": true,\"name\": \"jqsmith\",\"password\": \"secretsecret\"}}\u0027 \\"},{"line_number":148,"context_line":"      -X POST -H \"Content-type: application/json\" -H \"X-Auth-Token: ADMIN\""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Create tenant (or project)"},{"line_number":151,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Identity v2.0 tenants are visible as projects in Identity v3, and Identity v3"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3afb71cf_e3113a53","line":150,"updated":"2015-06-10 17:20:36.000000000","message":"I\u0027d rather project appear before tenant\n\nCreate project (or tenant)\n\nit\u0027s a minor change but we want to use the term projects going forward","commit_id":"dcd179fe3dccf28f3804b4ed369e8343d9cb2289"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0af73d0260182709b1d4f3bf5a9070708bfcdafe","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"::"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    curl http://localhost:35357/v3/projects -H \"X-Auth-Token: ADMIN\" \\"},{"line_number":173,"context_line":"      -H \"Content-type: application/json\" -X POST \\"},{"line_number":174,"context_line":"      -d \u0027{\"project\":{\"description\": \"tenant02 tenant\",\"domain_id\": \"123\",\"enabled\": true,\"name\": \"tenant02\"}}\u0027"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"3afb71cf_8329668c","line":172,"updated":"2015-06-10 17:20:36.000000000","message":"port 5000","commit_id":"dcd179fe3dccf28f3804b4ed369e8343d9cb2289"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0af73d0260182709b1d4f3bf5a9070708bfcdafe","unresolved":false,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"::"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    curl http://localhost:35357/v3/domains -H \"X-Auth-Token: ADMIN\" | python -mjson.tool"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Add domain"},{"line_number":186,"context_line":"^^^^^^^^^^"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3afb71cf_a32ea289","line":183,"updated":"2015-06-10 17:20:36.000000000","message":"use port 5000","commit_id":"dcd179fe3dccf28f3804b4ed369e8343d9cb2289"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0af73d0260182709b1d4f3bf5a9070708bfcdafe","unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    curl http://localhost:35357/v3/domains -H \"X-Auth-Token: ADMIN\" | python -mjson.tool"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Add domain"},{"line_number":186,"context_line":"^^^^^^^^^^"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"cURL (API v3)"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3afb71cf_e366daeb","line":185,"updated":"2015-06-10 17:20:36.000000000","message":"Create domain","commit_id":"dcd179fe3dccf28f3804b4ed369e8343d9cb2289"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0af73d0260182709b1d4f3bf5a9070708bfcdafe","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"::"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    curl http://localhost:35357/v3/domains -H \"X-Auth-Token: ADMIN\" \\"},{"line_number":193,"context_line":"      -H \"Content-type: application/json\" \\"},{"line_number":194,"context_line":"      -d \u0027{\"domain\":{\"enabled\":true, \"name\":\"CustomerX\"}}\u0027 | python -mjson.tool"},{"line_number":195,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"3afb71cf_c333def4","line":192,"updated":"2015-06-10 17:20:36.000000000","message":"use port 5000","commit_id":"dcd179fe3dccf28f3804b4ed369e8343d9cb2289"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0af73d0260182709b1d4f3bf5a9070708bfcdafe","unresolved":false,"context_lines":[{"line_number":193,"context_line":"      -H \"Content-type: application/json\" \\"},{"line_number":194,"context_line":"      -d \u0027{\"domain\":{\"enabled\":true, \"name\":\"CustomerX\"}}\u0027 | python -mjson.tool"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"Add role"},{"line_number":197,"context_line":"^^^^^^^^"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"cURL (API v2.0)"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3afb71cf_036c56cc","line":196,"updated":"2015-06-10 17:20:36.000000000","message":"This is Creating a role.\n\nWe reserve the term \"Add\" when we assign a role to a user","commit_id":"dcd179fe3dccf28f3804b4ed369e8343d9cb2289"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0af73d0260182709b1d4f3bf5a9070708bfcdafe","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"::"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    curl http://166.78.146.147:35357/v2.0/OS-KSADM/roles \\"},{"line_number":204,"context_line":"      -H \"X-Auth-Token: ADMIN\" \\"},{"line_number":205,"context_line":"      -d \u0027{\"role\":{\"name\":\"SysAdm\",\"description\":\"Role for sys admin\"}}\u0027 \\"},{"line_number":206,"context_line":"      -H \"Content-type: application/json\""}],"source_content_type":"text/x-rst","patch_set":19,"id":"3afb71cf_033e96c0","line":203,"updated":"2015-06-10 17:20:36.000000000","message":"use localhost instead of the IP?","commit_id":"dcd179fe3dccf28f3804b4ed369e8343d9cb2289"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0af73d0260182709b1d4f3bf5a9070708bfcdafe","unresolved":false,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":"::"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    curl http://localhost:35357/v3/roles -H \"X-AUTH-TOKEN: ADMIN\" \\"},{"line_number":213,"context_line":"      -H \"Content-type: application/json\" \\"},{"line_number":214,"context_line":"      -d \u0027{\"role\":{\"name\":\"SysAdmin\",\"description\":\"Sys admin v3\"}}\u0027 | python -mjson.tool"},{"line_number":215,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"3afb71cf_4356ce06","line":212,"updated":"2015-06-10 17:20:36.000000000","message":"use port 5000","commit_id":"dcd179fe3dccf28f3804b4ed369e8343d9cb2289"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":88,"context_line":"- Partial updates are performed using the HTTP ``PATCH`` method"},{"line_number":89,"context_line":"- Token ID values no longer appear in URLs"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"OpenStack Identity API v3 and v2.0 comparison"},{"line_number":92,"context_line":"---------------------------------------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"This section compares several Identity API v3 and v2.0 operations."}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_8c104baa","line":91,"updated":"2015-06-11 23:12:18.000000000","message":"This section is as relevant to v2 as it is to v3, so we could either put it here or in v2 or in a separate document. I\u0027d rather it was a separate document.\n\nAnother reason is that this new section has some duplicate information (such as \"API v3 adds the domains feature.\")\n\nPlus the API spec is pretty long as it is.","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":104,"context_line":"associated with multiple projects by granting roles to the user on a project,"},{"line_number":105,"context_line":"including projects owned by other domains."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Users can be associated with multiple domains in the same way. The concepts of"},{"line_number":108,"context_line":"ownership and association are orthogonal."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"List users"}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_6c54ef53","line":107,"updated":"2015-06-11 23:12:18.000000000","message":"I think it would be easier to follow if this sentence and the previous one were in the same paragraph.","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":110,"context_line":"List users"},{"line_number":111,"context_line":"^^^^^^^^^^"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"In API v3, you can list users for the domain but not across all domains."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"cURL (API v2.0)"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_ace787ab","line":113,"updated":"2015-06-11 23:12:18.000000000","message":"The keystone server does allow listing users across all domains if you haven\u0027t configured per-domain backends.\n\nSuggest:\n\n In API v3, you can request the list of users for all domains or for a single domain.","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"::"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"  curl http://localhost:5000/v3/users -H \"X-Auth-Token: ADMIN\""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Create user"},{"line_number":128,"context_line":"^^^^^^^^^^^"}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_4cd813f0","line":125,"updated":"2015-06-11 23:12:18.000000000","message":"suggest add ?domain_id\u003ddefault","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":127,"context_line":"Create user"},{"line_number":128,"context_line":"^^^^^^^^^^^"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"In API v2.0, you must make another API call to associate a user with a tenant."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"In API v3, you add a project (tenant) to a user when you add the user."},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_acb5477f","line":130,"updated":"2015-06-11 23:12:18.000000000","message":"this should say wha tthe API call is.\n\nAlso, change \"tenant\" to \"project\"","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"In API v2.0, you must make another API call to associate a user with a tenant."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"In API v3, you add a project (tenant) to a user when you add the user."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"cURL (API v2.0)"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_2c9397fc","line":132,"updated":"2015-06-11 23:12:18.000000000","message":"this should say \"you associate a user with a project when you create the user\".","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":136,"context_line":"::"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"  curl http://localhost:35357/v2.0/users \\"},{"line_number":139,"context_line":"      -d \u0027{\"user\": {\"tenantId\": \"263fd9\",\"name\": \"jqsmith\",\"email\": \"john.smith@example.org\",\"enabled\": true}}\u0027 \\"},{"line_number":140,"context_line":"      -X POST -H \"Content-type: application/json\" -H \"X-Auth-Token: ADMIN\""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"cURL (API v3)"}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_cc676324","line":139,"updated":"2015-06-11 23:12:18.000000000","message":"split up long lines.","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"  curl http://localhost:35357/v2.0/users \\"},{"line_number":139,"context_line":"      -d \u0027{\"user\": {\"tenantId\": \"263fd9\",\"name\": \"jqsmith\",\"email\": \"john.smith@example.org\",\"enabled\": true}}\u0027 \\"},{"line_number":140,"context_line":"      -X POST -H \"Content-type: application/json\" -H \"X-Auth-Token: ADMIN\""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"cURL (API v3)"},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_6c774fd5","line":140,"updated":"2015-06-11 23:12:18.000000000","message":"POST is the default method when -d is used, so remove \"-X POST\"","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":144,"context_line":"::"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"  curl http://localhost:5000/v3/users \\"},{"line_number":147,"context_line":"      -d \u0027{\"user\": {\"default_project_id\": \"263fd9\",\"description\": \"jqsmith user\",\"domain_id\": \"1789d1\",\"email\": \"john.smith@example.org\",\"enabled\": true,\"name\": \"jqsmith\",\"password\": \"secretsecret\"}}\u0027 \\"},{"line_number":148,"context_line":"      -X POST -H \"Content-type: application/json\" -H \"X-Auth-Token: ADMIN\""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Create project (or tenant)"}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_ac6c2709","line":147,"updated":"2015-06-11 23:12:18.000000000","message":"split up long lines.","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"  curl http://localhost:5000/v3/users \\"},{"line_number":147,"context_line":"      -d \u0027{\"user\": {\"default_project_id\": \"263fd9\",\"description\": \"jqsmith user\",\"domain_id\": \"1789d1\",\"email\": \"john.smith@example.org\",\"enabled\": true,\"name\": \"jqsmith\",\"password\": \"secretsecret\"}}\u0027 \\"},{"line_number":148,"context_line":"      -X POST -H \"Content-type: application/json\" -H \"X-Auth-Token: ADMIN\""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Create project (or tenant)"},{"line_number":151,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^"}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_0c7e9bae","line":148,"updated":"2015-06-11 23:12:18.000000000","message":"POST is the default method when -d is used, so remove \"-X POST\"","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":147,"context_line":"      -d \u0027{\"user\": {\"default_project_id\": \"263fd9\",\"description\": \"jqsmith user\",\"domain_id\": \"1789d1\",\"email\": \"john.smith@example.org\",\"enabled\": true,\"name\": \"jqsmith\",\"password\": \"secretsecret\"}}\u0027 \\"},{"line_number":148,"context_line":"      -X POST -H \"Content-type: application/json\" -H \"X-Auth-Token: ADMIN\""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Create project (or tenant)"},{"line_number":151,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Identity v2.0 tenants are visible as projects in Identity v3, and Identity v3"}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_0c2c5baa","line":150,"updated":"2015-06-11 23:12:18.000000000","message":"suggest put this before the user operations since users uses projects, and then the explanation of the name change from tenants to projects is explained.","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":150,"context_line":"Create project (or tenant)"},{"line_number":151,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Identity v2.0 tenants are visible as projects in Identity v3, and Identity v3"},{"line_number":154,"context_line":"projects are visible as tenants in Identity v2.0."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"In Identity v3, you can add a project that references a domain that does not"}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_ac11c75f","line":153,"updated":"2015-06-11 23:12:18.000000000","message":"change \"tenants\" to \"projects\"","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":151,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Identity v2.0 tenants are visible as projects in Identity v3, and Identity v3"},{"line_number":154,"context_line":"projects are visible as tenants in Identity v2.0."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"In Identity v3, you can add a project that references a domain that does not"},{"line_number":157,"context_line":"exist yet. In the following Identity v3 example, domain 123 was not yet added"}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_8c160b54","line":154,"updated":"2015-06-11 23:12:18.000000000","message":"change \"tenants\" to \"projects\"","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":154,"context_line":"projects are visible as tenants in Identity v2.0."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"In Identity v3, you can add a project that references a domain that does not"},{"line_number":157,"context_line":"exist yet. In the following Identity v3 example, domain 123 was not yet added"},{"line_number":158,"context_line":"and does not appear in response to a ``GET v3/domains`` call."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"cURL (API v2.0)"}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_4c093331","line":157,"updated":"2015-06-11 23:12:18.000000000","message":"Since domains didn\u0027t exist in v2, this isn\u0027t a difference between v2 and v3, so remove the sentence.","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    curl http://localhost:35357/v2.0/tenants -H \"X-Auth-Token: ADMIN\" \\"},{"line_number":165,"context_line":"      -H \"Content-type: application/json\" \\"},{"line_number":166,"context_line":"      -X POST -d \u0027{\"tenant\":{\"name\": \"tenant02\",\"description\": \"tenant02 tenant\",\"enabled\": true}}\u0027"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"cURL (API v3)"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_d7036c0c","line":166,"updated":"2015-06-11 23:12:18.000000000","message":"remove -X POST","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":170,"context_line":"::"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    curl http://localhost:5000/v3/projects -H \"X-Auth-Token: ADMIN\" \\"},{"line_number":173,"context_line":"      -H \"Content-type: application/json\" -X POST \\"},{"line_number":174,"context_line":"      -d \u0027{\"project\":{\"description\": \"tenant02 tenant\",\"domain_id\": \"123\",\"enabled\": true,\"name\": \"tenant02\"}}\u0027"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"List domains"}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_970df439","line":173,"updated":"2015-06-11 23:12:18.000000000","message":"remove -X POST","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    curl http://localhost:5000/v3/projects -H \"X-Auth-Token: ADMIN\" \\"},{"line_number":173,"context_line":"      -H \"Content-type: application/json\" -X POST \\"},{"line_number":174,"context_line":"      -d \u0027{\"project\":{\"description\": \"tenant02 tenant\",\"domain_id\": \"123\",\"enabled\": true,\"name\": \"tenant02\"}}\u0027"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"List domains"},{"line_number":177,"context_line":"^^^^^^^^^^^^"}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_b708f029","line":174,"updated":"2015-06-11 23:12:18.000000000","message":"split up long lines.","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":173,"context_line":"      -H \"Content-type: application/json\" -X POST \\"},{"line_number":174,"context_line":"      -d \u0027{\"project\":{\"description\": \"tenant02 tenant\",\"domain_id\": \"123\",\"enabled\": true,\"name\": \"tenant02\"}}\u0027"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"List domains"},{"line_number":177,"context_line":"^^^^^^^^^^^^"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"cURL (API v3)"}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_57377ce3","line":176,"updated":"2015-06-11 23:12:18.000000000","message":"there\u0027s no domains in v2, so this isn\u0027t a difference between v2 and v3, so this section can be removed.","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    curl http://localhost:5000/v3/domains -H \"X-Auth-Token: ADMIN\" | python -mjson.tool"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Create domain"},{"line_number":186,"context_line":"^^^^^^^^^^^^^"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"cURL (API v3)"}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_b756b004","line":185,"updated":"2015-06-11 23:12:18.000000000","message":"there\u0027s no domains in v2, so this isn\u0027t a difference between v2 and v3, so this section can be removed.","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2881018c0a9d64aa211ef291a929d7f72719af47","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    curl http://localhost:5000/v3/roles -H \"X-AUTH-TOKEN: ADMIN\" \\"},{"line_number":213,"context_line":"      -H \"Content-type: application/json\" \\"},{"line_number":214,"context_line":"      -d \u0027{\"role\":{\"name\":\"SysAdmin\",\"description\":\"Sys admin v3\"}}\u0027 | python -mjson.tool"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"Document Overview"},{"line_number":217,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":20,"id":"1af86dd1_b76d90ce","line":214,"updated":"2015-06-11 23:12:18.000000000","message":"Use the same description: Role for sys admin\n\nRoles that you create in v3 or v2 can be seen and used interchangeably.","commit_id":"4778ff2136f594a8c29afeb0127599c62eb6f6aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8124feb4941e1ef34a5e8cce64f700cd22bb0bdc","unresolved":false,"context_lines":[{"line_number":246,"context_line":"  represents a page within the complete collection."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"CRUD Operations"},{"line_number":249,"context_line":"---------------"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"Unless otherwise documented (tokens being the notable exception), all resources"},{"line_number":252,"context_line":"provided by the Identity API support basic CRUD operations (create, read,"}],"source_content_type":"text/x-rst","patch_set":24,"id":"fa32b979_2d12c157","line":249,"updated":"2015-06-18 01:12:59.000000000","message":"CRUD Operations is an API convention so this should not be changed.","commit_id":"e909ec9fb6dac0f54397ff44e689ae89f956e13f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8124feb4941e1ef34a5e8cce64f700cd22bb0bdc","unresolved":false,"context_lines":[{"line_number":256,"context_line":"``/v3/entities`` which is not actually a part of the Identity API, and is used"},{"line_number":257,"context_line":"for illustrative purposes only."},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"Create an Entity"},{"line_number":260,"context_line":"^^^^^^^^^^^^^^^^"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"When creating an entity, you must provide all required attributes (except those"}],"source_content_type":"text/x-rst","patch_set":24,"id":"fa32b979_0dc81da5","line":259,"updated":"2015-06-18 01:12:59.000000000","message":"\"Create an Entity\" through \"Delete an Entity\" should stay as children of \"CRUD Operations\"","commit_id":"e909ec9fb6dac0f54397ff44e689ae89f956e13f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8124feb4941e1ef34a5e8cce64f700cd22bb0bdc","unresolved":false,"context_lines":[{"line_number":540,"context_line":"    204 No Content"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"HTTP Status Codes"},{"line_number":543,"context_line":"-----------------"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"The Identity API uses a subset of the available HTTP status codes to"},{"line_number":546,"context_line":"communicate specific success and failure conditions to the client."}],"source_content_type":"text/x-rst","patch_set":24,"id":"fa32b979_ed17f942","line":543,"updated":"2015-06-18 01:12:59.000000000","message":"This is an API convention so this should not be changed.","commit_id":"e909ec9fb6dac0f54397ff44e689ae89f956e13f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8124feb4941e1ef34a5e8cce64f700cd22bb0bdc","unresolved":false,"context_lines":[{"line_number":546,"context_line":"communicate specific success and failure conditions to the client."},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"200 OK"},{"line_number":549,"context_line":"^^^^^^"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"This status code is returned in response to successful ``GET``, ``HEAD`` and"},{"line_number":552,"context_line":"``PATCH`` operations."}],"source_content_type":"text/x-rst","patch_set":24,"id":"fa32b979_8d3aed97","line":549,"updated":"2015-06-18 01:12:59.000000000","message":"\"200 OK\" through \"503 Service Unavailble\" should remail children of \"HTTP Status Codes\"","commit_id":"e909ec9fb6dac0f54397ff44e689ae89f956e13f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8124feb4941e1ef34a5e8cce64f700cd22bb0bdc","unresolved":false,"context_lines":[{"line_number":1546,"context_line":"    }"},{"line_number":1547,"context_line":""},{"line_number":1548,"context_line":"Authentication: ``authentication``"},{"line_number":1549,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":1550,"context_line":""},{"line_number":1551,"context_line":"Authentication is performed by specifying a list of authentication ``methods``,"},{"line_number":1552,"context_line":"each with a corresponding object, containing any attributes required by the"}],"source_content_type":"text/x-rst","patch_set":24,"id":"fa32b979_2d6721ea","line":1549,"updated":"2015-06-18 01:12:59.000000000","message":"this needs to be a child of Authenticate and not a peer","commit_id":"e909ec9fb6dac0f54397ff44e689ae89f956e13f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8124feb4941e1ef34a5e8cce64f700cd22bb0bdc","unresolved":false,"context_lines":[{"line_number":1566,"context_line":"        }"},{"line_number":1567,"context_line":"    }"},{"line_number":1568,"context_line":""},{"line_number":1569,"context_line":"The ``password`` authentication method"},{"line_number":1570,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":1571,"context_line":""},{"line_number":1572,"context_line":"To authenticate by ``password``, the user must be uniquely identified in"}],"source_content_type":"text/x-rst","patch_set":24,"id":"fa32b979_4da4e506","line":1569,"updated":"2015-06-18 01:12:59.000000000","message":"This should be a child of Authentication: ``authentication``","commit_id":"e909ec9fb6dac0f54397ff44e689ae89f956e13f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8124feb4941e1ef34a5e8cce64f700cd22bb0bdc","unresolved":false,"context_lines":[{"line_number":1642,"context_line":"        }"},{"line_number":1643,"context_line":"    }"},{"line_number":1644,"context_line":""},{"line_number":1645,"context_line":"The ``token`` authentication method"},{"line_number":1646,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":1647,"context_line":""},{"line_number":1648,"context_line":"If the authenticating user is already in possession of a valid token, then that"}],"source_content_type":"text/x-rst","patch_set":24,"id":"fa32b979_2dae41e6","line":1645,"updated":"2015-06-18 01:12:59.000000000","message":"should be a peer of previous","commit_id":"e909ec9fb6dac0f54397ff44e689ae89f956e13f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8124feb4941e1ef34a5e8cce64f700cd22bb0bdc","unresolved":false,"context_lines":[{"line_number":1664,"context_line":"        }"},{"line_number":1665,"context_line":"    }"},{"line_number":1666,"context_line":""},{"line_number":1667,"context_line":"Scope: ``scope``"},{"line_number":1668,"context_line":"^^^^^^^^^^^^^^^^"},{"line_number":1669,"context_line":""},{"line_number":1670,"context_line":"An authorization scope, including either a ``project`` or ``domain``, can be"}],"source_content_type":"text/x-rst","patch_set":24,"id":"fa32b979_8d850d5b","line":1667,"updated":"2015-06-18 01:12:59.000000000","message":"Should be a child of \"Authenticate\"","commit_id":"e909ec9fb6dac0f54397ff44e689ae89f956e13f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8124feb4941e1ef34a5e8cce64f700cd22bb0bdc","unresolved":false,"context_lines":[{"line_number":1822,"context_line":"behave the same as a token request with no scope, where the user has no"},{"line_number":1823,"context_line":"default project defined."},{"line_number":1824,"context_line":""},{"line_number":1825,"context_line":"Catalog Opt-Out"},{"line_number":1826,"context_line":"^^^^^^^^^^^^^^^"},{"line_number":1827,"context_line":""},{"line_number":1828,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":24,"id":"fa32b979_4d7b857b","line":1825,"updated":"2015-06-18 01:12:59.000000000","message":"Should be a child of \"Tokens\"","commit_id":"e909ec9fb6dac0f54397ff44e689ae89f956e13f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8124feb4941e1ef34a5e8cce64f700cd22bb0bdc","unresolved":false,"context_lines":[{"line_number":1838,"context_line":"response by default."},{"line_number":1839,"context_line":""},{"line_number":1840,"context_line":"Authentication responses"},{"line_number":1841,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":1842,"context_line":""},{"line_number":1843,"context_line":"A response without an explicit authorization scope does not contain a"},{"line_number":1844,"context_line":"``catalog``, ``project``, ``domain`` or ``roles`` but can be used to uniquely"}],"source_content_type":"text/x-rst","patch_set":24,"id":"fa32b979_cd8f9573","line":1841,"updated":"2015-06-18 01:12:59.000000000","message":"Should be a child of tokens","commit_id":"e909ec9fb6dac0f54397ff44e689ae89f956e13f"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"29e52379124ee69f1a9fb93a98b08103c28bc7a3","unresolved":false,"context_lines":[{"line_number":789,"context_line":"- ``project_id`` (string)"},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"  References a project which limits the scope the credential applies to."},{"line_number":792,"context_line":"  This attribute is **mandatory** if the credential type is ``ec2``."},{"line_number":793,"context_line":""},{"line_number":794,"context_line":"Example entity:"},{"line_number":795,"context_line":""}],"source_content_type":"text/x-rst","patch_set":25,"id":"fa32b979_1b84b308","line":792,"updated":"2015-06-18 17:49:19.000000000","message":"There\u0027s no evident in the code to support this claim.\n\nhttps://github.com/openstack/keystone/blob/master/keystone/credential/controllers.py#L65\n\nhttps://github.com/openstack/keystone/blob/master/keystone/credential/backends/sql.py#L26","commit_id":"7f8a8c0d2a27a98de70a9cf7820c65a2d6647172"}]}
