)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"ba25e6894d30bc544c0e7a3d073dc142390b9b5a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"implements: bp vo-management"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I80196391ec56bffb0c4b69da2cf9706c8ec85c58"},{"line_number":14,"context_line":"Co-Authored-By: Kristy Siu \u003ckwss@kent.ac.uk\u003e"},{"line_number":15,"context_line":"Co-Authored-By: David Chadwick \u003cd.w.chadwick@kent.ac.uk\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1ae5cdf2_09c7e396","line":14,"updated":"2014-06-05 12:17:58.000000000","message":"You are the author so there is no need to mark yourself as a Co-Autor :-)","commit_id":"82a3cd39c10c16aea94d49028be1099aa7bc4d44"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":11,"context_line":"implements: bp vo-management"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I80196391ec56bffb0c4b69da2cf9706c8ec85c58"},{"line_number":14,"context_line":"Co-Authored-By: Kristy Siu \u003ckwss@kent.ac.uk\u003e"},{"line_number":15,"context_line":"Co-Authored-By: David Chadwick \u003cd.w.chadwick@kent.ac.uk\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"baada198_f7a457bb","line":14,"updated":"2014-07-07 00:21:16.000000000","message":"Since you are an author, you don\u0027t need to put your name here.","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"}],"openstack-identity-api/v3/src/markdown/identity-api-v3-os-vo-ext.md":[{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"63b78985e12f630cf90d611032d6df0589de850c","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Response:"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    Status: 201 Created"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    {"},{"line_number":82,"context_line":"        \"vo_role\": {\r"}],"source_content_type":"text/x-markdown","patch_set":3,"id":"1ae5cdf2_09de03dd","line":79,"updated":"2014-06-05 12:34:46.000000000","message":"multiple \u0027\\r\u0027 to be removed.","commit_id":"d44ddcaaf3793441fedb1d4ee01f43cb2e8d6339"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"63b78985e12f630cf90d611032d6df0589de850c","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            \"pin\": 9999"},{"line_number":161,"context_line":"            \"vo_is_domain\": false,"},{"line_number":162,"context_line":"            \"vo_name\": \"myOtherVO\","},{"line_number":163,"context_line":"            \"vo_role\": \"member\" "},{"line_number":164,"context_line":"        }"},{"line_number":165,"context_line":"    }"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":3,"id":"1ae5cdf2_494d6bc3","line":163,"updated":"2014-06-05 12:34:46.000000000","message":"whitespace","commit_id":"d44ddcaaf3793441fedb1d4ee01f43cb2e8d6339"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"63b78985e12f630cf90d611032d6df0589de850c","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        {"},{"line_number":239,"context_line":"            \"id\": \"34cb2d\","},{"line_number":240,"context_line":"            \"user_id\": \"abc@idp\","},{"line_number":241,"context_line":"            \"idp\": 64ef2a\""},{"line_number":242,"context_line":"        }"},{"line_number":243,"context_line":"    }"},{"line_number":244,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":3,"id":"1ae5cdf2_69a787a7","line":241,"updated":"2014-06-05 12:34:46.000000000","message":"missing \"","commit_id":"d44ddcaaf3793441fedb1d4ee01f43cb2e8d6339"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"63b78985e12f630cf90d611032d6df0589de850c","unresolved":false,"context_lines":[{"line_number":261,"context_line":"            {"},{"line_number":262,"context_line":"                \"id\": \"bf21a9\","},{"line_number":263,"context_line":"                \"user_id\": \"xyz@idp\","},{"line_number":264,"context_line":"                \"idp\": 64ef2a\""},{"line_number":265,"context_line":"            }"},{"line_number":266,"context_line":"        ]"},{"line_number":267,"context_line":"    }"}],"source_content_type":"text/x-markdown","patch_set":3,"id":"1ae5cdf2_e9b2b7e3","line":264,"updated":"2014-06-05 12:34:46.000000000","message":"mising \"","commit_id":"d44ddcaaf3793441fedb1d4ee01f43cb2e8d6339"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"63b78985e12f630cf90d611032d6df0589de850c","unresolved":false,"context_lines":[{"line_number":340,"context_line":"            {"},{"line_number":341,"context_line":"                \"id\": \"bf21a9\","},{"line_number":342,"context_line":"                \"user_id\": \"foo@idp\","},{"line_number":343,"context_line":"                \"idp\": 64ef2a\","},{"line_number":344,"context_line":"                \"vo_role: \"66bb3e\""},{"line_number":345,"context_line":"            }"},{"line_number":346,"context_line":"        ]"}],"source_content_type":"text/x-markdown","patch_set":3,"id":"1ae5cdf2_e9e9d7b7","line":343,"updated":"2014-06-05 12:34:46.000000000","message":"missing \"","commit_id":"d44ddcaaf3793441fedb1d4ee01f43cb2e8d6339"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"63b78985e12f630cf90d611032d6df0589de850c","unresolved":false,"context_lines":[{"line_number":355,"context_line":"            {"},{"line_number":356,"context_line":"                \"id\": \"34cb2d\","},{"line_number":357,"context_line":"                \"user_id\": \"badman@idp\","},{"line_number":358,"context_line":"                \"idp\": 64ef2a\","},{"line_number":359,"context_line":"                \"vo_role: \"66bb3e\""},{"line_number":360,"context_line":"            },"},{"line_number":361,"context_line":"            {"}],"source_content_type":"text/x-markdown","patch_set":3,"id":"1ae5cdf2_09d443ea","line":358,"updated":"2014-06-05 12:34:46.000000000","message":"missing \"","commit_id":"d44ddcaaf3793441fedb1d4ee01f43cb2e8d6339"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"63b78985e12f630cf90d611032d6df0589de850c","unresolved":false,"context_lines":[{"line_number":361,"context_line":"            {"},{"line_number":362,"context_line":"                \"id\": \"5a3c88\","},{"line_number":363,"context_line":"                \"user_id\": \"foo@idp\","},{"line_number":364,"context_line":"                \"idp\": 64ef2a\","},{"line_number":365,"context_line":"                \"vo_role: \"7feab4\""},{"line_number":366,"context_line":"            }"},{"line_number":367,"context_line":"        ]"}],"source_content_type":"text/x-markdown","patch_set":3,"id":"1ae5cdf2_29cf3f57","line":364,"updated":"2014-06-05 12:34:46.000000000","message":"missing \"","commit_id":"d44ddcaaf3793441fedb1d4ee01f43cb2e8d6339"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1bab24a916513ac7bf8f2f1ec5e48e504c837beb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"1ae5cdf2_17e75113","updated":"2014-06-11 02:59:10.000000000","message":"Once this is fleshed out, it would be better if it were part of the OS-FEDERATION file (maybe... not done reading the doc yet, but I think so)","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":2448,"name":"Diane Fleming","email":"dfleming@austin.rr.com","username":"diane-fleming"},"change_message_id":"6386412e4936db4019d85f1532cb4f1e4091d5e7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"OpenStack Identity API v3 Virtual Organisation Management Extension"},{"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\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 extension provides API functions to facilitate the creation and management"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_1d256b5b","line":1,"updated":"2014-06-12 20:12:39.000000000","message":"organization management extension\n\n(we use sentence-style caps in headings and table captions)","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":2448,"name":"Diane Fleming","email":"dfleming@austin.rr.com","username":"diane-fleming"},"change_message_id":"6386412e4936db4019d85f1532cb4f1e4091d5e7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"OpenStack Identity API v3 Virtual Organisation Management Extension"},{"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\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 extension provides API functions to facilitate the creation and management"},{"line_number":5,"context_line":"of virtual organisations (VOs) within a federation. A VO is a group of"},{"line_number":6,"context_line":"users from different organisations who collaborate together to share resources."},{"line_number":7,"context_line":"Different users who need to be granted the same access rights to a set of VO"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_9d017bb1","line":4,"updated":"2014-06-12 20:12:39.000000000","message":"This extension enables you to create and manage virtual organizations (VOs)","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":2448,"name":"Diane Fleming","email":"dfleming@austin.rr.com","username":"diane-fleming"},"change_message_id":"6386412e4936db4019d85f1532cb4f1e4091d5e7","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Different users who need to be granted the same access rights to a set of VO"},{"line_number":8,"context_line":"resources are assigned the same VO role."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"This API allows administrators to manage (create, read, update and delete) PIN"},{"line_number":11,"context_line":"protected VO roles and users to self register to and resign from these VO roles."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"VO roles are mapped into OpenStack groups as follows:"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_ddd5c31c","line":10,"updated":"2014-06-12 20:12:39.000000000","message":"enables administrators to create, read, update, and delete PIN-protected","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1bab24a916513ac7bf8f2f1ec5e48e504c837beb","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"VO roles are mapped into OpenStack groups as follows:"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"1. If the VO is a domain, the group name is the VO role name"},{"line_number":16,"context_line":"2. If there are multiple VOs in a domain, the group name is vo\\_name.vo\\_role"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"### VO roles: `/OS-FEDERATION/vo_roles`"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_571ab917","line":15,"updated":"2014-06-11 02:59:10.000000000","message":"These definitions are a bit confusing. Can you give an example for both 1 and 2?\n\nWhat is the motivation behind performing a mapping two different ways?\n\n\nedit: OK - so I think I understand this after reading the spec.\n\nEvery time a vo_role is created\nif: vo_is_domain, then we create a group called vo_role.\nelse: we create a group called vo_name.vo_role","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"26c8dd64d9c9a249d46a1e831386d2a7bd8d2751","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"VO roles are mapped into OpenStack groups as follows:"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"1. If the VO is a domain, the group name is the VO role name"},{"line_number":16,"context_line":"2. If there are multiple VOs in a domain, the group name is vo\\_name.vo\\_role"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"### VO roles: `/OS-FEDERATION/vo_roles`"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_8a7be1f3","line":15,"in_reply_to":"1ae5cdf2_571ab917","updated":"2014-06-13 09:04:35.000000000","message":"Yes that is correct. Do you think you can word it better to be clearer?\n\nOf course it helps is people read the blueprint first, but if they dont, then do we need to reproduce it in the API spec?","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"efd62f93c0e019e3717bf73c232a79dffdfa7078","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"VO roles are mapped into OpenStack groups as follows:"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"1. If the VO is a domain, the group name is the VO role name"},{"line_number":16,"context_line":"2. If there are multiple VOs in a domain, the group name is vo\\_name.vo\\_role"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"### VO roles: `/OS-FEDERATION/vo_roles`"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_707e75e5","line":15,"in_reply_to":"1ae5cdf2_8a7be1f3","updated":"2014-06-13 18:31:46.000000000","message":"I think it\u0027s useful to have here, as this will be the main source for developers to refer to when using our APIs","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1bab24a916513ac7bf8f2f1ec5e48e504c837beb","unresolved":false,"context_lines":[{"line_number":13,"context_line":"VO roles are mapped into OpenStack groups as follows:"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"1. If the VO is a domain, the group name is the VO role name"},{"line_number":16,"context_line":"2. If there are multiple VOs in a domain, the group name is vo\\_name.vo\\_role"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"### VO roles: `/OS-FEDERATION/vo_roles`"},{"line_number":19,"context_line":"### VO role membership: `/OS-FEDERATION/vo_roles/member`"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_576c799c","line":16,"updated":"2014-06-11 02:59:10.000000000","message":"what\u0027s with the \\\u0027s?","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"26c8dd64d9c9a249d46a1e831386d2a7bd8d2751","unresolved":false,"context_lines":[{"line_number":13,"context_line":"VO roles are mapped into OpenStack groups as follows:"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"1. If the VO is a domain, the group name is the VO role name"},{"line_number":16,"context_line":"2. If there are multiple VOs in a domain, the group name is vo\\_name.vo\\_role"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"### VO roles: `/OS-FEDERATION/vo_roles`"},{"line_number":19,"context_line":"### VO role membership: `/OS-FEDERATION/vo_roles/member`"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_aa7edde1","line":16,"in_reply_to":"1ae5cdf2_576c799c","updated":"2014-06-13 09:04:35.000000000","message":"typo","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1bab24a916513ac7bf8f2f1ec5e48e504c837beb","unresolved":false,"context_lines":[{"line_number":18,"context_line":"### VO roles: `/OS-FEDERATION/vo_roles`"},{"line_number":19,"context_line":"### VO role membership: `/OS-FEDERATION/vo_roles/member`"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Admin API on VO roles"},{"line_number":22,"context_line":"---------------------"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"### Create a VO role: `PUT /OS-FEDERATION/vo_roles`"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_f7474575","line":21,"updated":"2014-06-11 02:59:10.000000000","message":"We can\u0027t really enforce this, it\u0027s up to the policy","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"efd62f93c0e019e3717bf73c232a79dffdfa7078","unresolved":false,"context_lines":[{"line_number":18,"context_line":"### VO roles: `/OS-FEDERATION/vo_roles`"},{"line_number":19,"context_line":"### VO role membership: `/OS-FEDERATION/vo_roles/member`"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Admin API on VO roles"},{"line_number":22,"context_line":"---------------------"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"### Create a VO role: `PUT /OS-FEDERATION/vo_roles`"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_5014199f","line":21,"in_reply_to":"1ae5cdf2_6a705508","updated":"2014-06-13 18:31:46.000000000","message":"It\u0027s written \"Admin API on VO roles\", I had interpreted this as \nenforcing \"Admin\"ness on a particular API.","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"26c8dd64d9c9a249d46a1e831386d2a7bd8d2751","unresolved":false,"context_lines":[{"line_number":18,"context_line":"### VO roles: `/OS-FEDERATION/vo_roles`"},{"line_number":19,"context_line":"### VO role membership: `/OS-FEDERATION/vo_roles/member`"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Admin API on VO roles"},{"line_number":22,"context_line":"---------------------"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"### Create a VO role: `PUT /OS-FEDERATION/vo_roles`"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_6a705508","line":21,"in_reply_to":"1ae5cdf2_f7474575","updated":"2014-06-13 09:04:35.000000000","message":"Cannot really enforce what?","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1bab24a916513ac7bf8f2f1ec5e48e504c837beb","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  The name of the virtual organisation."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"- \u0027vo_role\u0027 (string)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"  The name of the VO role."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_f7ae6597","line":32,"updated":"2014-06-11 02:59:10.000000000","message":"would it make more sense to call this \u0027name\u0027?\nas vo_role is already the top level dictionary term:\n\ni.e. a few down, you have:\n\n  \"vo_role\": {\n              ...,\n              \"vo_role\": \"member\"\t\n          }\n\nBut this then brings up possible confusion between vo_name and name.","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"26c8dd64d9c9a249d46a1e831386d2a7bd8d2751","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  The name of the virtual organisation."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"- \u0027vo_role\u0027 (string)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"  The name of the VO role."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_2a51ed61","line":32,"in_reply_to":"1ae5cdf2_f7ae6597","updated":"2014-06-13 09:04:35.000000000","message":"Name is too generic. It is used for many things.\nWe could call it vo_role_name if that it not too long","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1bab24a916513ac7bf8f2f1ec5e48e504c837beb","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"- \u0027vo_role\u0027 (string)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"  The name of the VO role."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"- `pin` (string)"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_17ce7183","line":34,"updated":"2014-06-11 02:59:10.000000000","message":"inconsistent use of VO (this line) and virtual organisation (few lines up), pick one and go for it.","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1bab24a916513ac7bf8f2f1ec5e48e504c837beb","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"- `pin` (string)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"  The PIN or password to be used by users to register for this VO role."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Optional attributes:"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_d799696f","line":38,"updated":"2014-06-11 02:59:10.000000000","message":"is it a PIN or a password? i\u0027d settle with one early on.\n\ni guess i\u0027d prefer the term \u0027secret\u0027 if you want to leave it ambiguous.","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"26c8dd64d9c9a249d46a1e831386d2a7bd8d2751","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"- `pin` (string)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"  The PIN or password to be used by users to register for this VO role."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Optional attributes:"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_cacfa927","line":38,"in_reply_to":"1ae5cdf2_d799696f","updated":"2014-06-13 09:04:35.000000000","message":"Good idea. We should use secret","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1bab24a916513ac7bf8f2f1ec5e48e504c837beb","unresolved":false,"context_lines":[{"line_number":47,"context_line":"- `enabled` (boolean)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"  Indicates whether this VO role is active or not. If a value is"},{"line_number":50,"context_line":"  not specified by the client, the service will default this to `false`."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"- `vo_is_domain` (boolean)"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_77a89577","line":50,"updated":"2014-06-11 02:59:10.000000000","message":"why default it to false for something like enabled? most other APIs don\u0027t.","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"26c8dd64d9c9a249d46a1e831386d2a7bd8d2751","unresolved":false,"context_lines":[{"line_number":47,"context_line":"- `enabled` (boolean)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"  Indicates whether this VO role is active or not. If a value is"},{"line_number":50,"context_line":"  not specified by the client, the service will default this to `false`."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"- `vo_is_domain` (boolean)"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_8af04168","line":50,"in_reply_to":"1ae5cdf2_77a89577","updated":"2014-06-13 09:04:35.000000000","message":"yes we should follow convention","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1bab24a916513ac7bf8f2f1ec5e48e504c837beb","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    {"},{"line_number":67,"context_line":"        \"vo_role\": {"},{"line_number":68,"context_line":"            \"automatic_join\": false,"},{"line_number":69,"context_line":"            \"description\": \"A Virtual Organisation Role\","},{"line_number":70,"context_line":"            \"enabled\": true,"},{"line_number":71,"context_line":"            \"pin\": \"1234\","},{"line_number":72,"context_line":"            \"vo_name\": \"myVo\","}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_176d9132","line":69,"updated":"2014-06-11 02:59:10.000000000","message":"a better example would be better.","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"26c8dd64d9c9a249d46a1e831386d2a7bd8d2751","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    {"},{"line_number":67,"context_line":"        \"vo_role\": {"},{"line_number":68,"context_line":"            \"automatic_join\": false,"},{"line_number":69,"context_line":"            \"description\": \"A Virtual Organisation Role\","},{"line_number":70,"context_line":"            \"enabled\": true,"},{"line_number":71,"context_line":"            \"pin\": \"1234\","},{"line_number":72,"context_line":"            \"vo_name\": \"myVo\","}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_6a8cd5d7","line":69,"in_reply_to":"1ae5cdf2_176d9132","updated":"2014-06-13 09:04:35.000000000","message":"How about\n\"description\": \"The keystone developers\"\n\"vo_name\": \"keystone_dev\"\n\"vo_role\":\"member\"","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"efd62f93c0e019e3717bf73c232a79dffdfa7078","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    {"},{"line_number":67,"context_line":"        \"vo_role\": {"},{"line_number":68,"context_line":"            \"automatic_join\": false,"},{"line_number":69,"context_line":"            \"description\": \"A Virtual Organisation Role\","},{"line_number":70,"context_line":"            \"enabled\": true,"},{"line_number":71,"context_line":"            \"pin\": \"1234\","},{"line_number":72,"context_line":"            \"vo_name\": \"myVo\","}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_b05b9d84","line":69,"in_reply_to":"1ae5cdf2_6a8cd5d7","updated":"2014-06-13 18:31:46.000000000","message":"cool with me.","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1bab24a916513ac7bf8f2f1ec5e48e504c837beb","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            \"description\": \"A Virtual Organisation Role\","},{"line_number":70,"context_line":"            \"enabled\": true,"},{"line_number":71,"context_line":"            \"pin\": \"1234\","},{"line_number":72,"context_line":"            \"vo_name\": \"myVo\","},{"line_number":73,"context_line":"            \"vo_role\": \"member\""},{"line_number":74,"context_line":"        }"},{"line_number":75,"context_line":"    }"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_3768cd20","line":72,"updated":"2014-06-11 02:59:10.000000000","message":"a better example would be better. (punniness intended)","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1bab24a916513ac7bf8f2f1ec5e48e504c837beb","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            \"automatic_join\": false,"},{"line_number":84,"context_line":"            \"description\": \"A Virtual Organisation Role\","},{"line_number":85,"context_line":"            \"enabled\": true,"},{"line_number":86,"context_line":"            \"group_id\": \"22ef8a\","},{"line_number":87,"context_line":"            \"id\": \"6e78fa\","},{"line_number":88,"context_line":"            \"links\": {"},{"line_number":89,"context_line":"                \"self\": \"http://identity:35357/v3/OS-FEDERATION/v_o_roles/6e78fa\""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_d78329ca","line":86,"updated":"2014-06-11 02:59:10.000000000","message":"How did we magically associate this with a group Id?\n\nwould it make sense to have group_name here?","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"26c8dd64d9c9a249d46a1e831386d2a7bd8d2751","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            \"automatic_join\": false,"},{"line_number":84,"context_line":"            \"description\": \"A Virtual Organisation Role\","},{"line_number":85,"context_line":"            \"enabled\": true,"},{"line_number":86,"context_line":"            \"group_id\": \"22ef8a\","},{"line_number":87,"context_line":"            \"id\": \"6e78fa\","},{"line_number":88,"context_line":"            \"links\": {"},{"line_number":89,"context_line":"                \"self\": \"http://identity:35357/v3/OS-FEDERATION/v_o_roles/6e78fa\""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_6a51352f","line":86,"in_reply_to":"1ae5cdf2_d78329ca","updated":"2014-06-13 09:04:35.000000000","message":"There is no magic. The vo_role is the group. It is an alternative interface for groups. Groups are called vo_roles in this interface, but the backend will still store a group.","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1bab24a916513ac7bf8f2f1ec5e48e504c837beb","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            \"group_id\": \"22ef8a\","},{"line_number":87,"context_line":"            \"id\": \"6e78fa\","},{"line_number":88,"context_line":"            \"links\": {"},{"line_number":89,"context_line":"                \"self\": \"http://identity:35357/v3/OS-FEDERATION/v_o_roles/6e78fa\""},{"line_number":90,"context_line":"            },"},{"line_number":91,"context_line":"            \"pin\": \"1234\","},{"line_number":92,"context_line":"            \"vo_name\": \"myVO\","}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_37728de3","line":89,"updated":"2014-06-11 02:59:10.000000000","message":"typo: v_o_roles\n\nalso, would it make sense to like to the group?","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"26c8dd64d9c9a249d46a1e831386d2a7bd8d2751","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            \"group_id\": \"22ef8a\","},{"line_number":87,"context_line":"            \"id\": \"6e78fa\","},{"line_number":88,"context_line":"            \"links\": {"},{"line_number":89,"context_line":"                \"self\": \"http://identity:35357/v3/OS-FEDERATION/v_o_roles/6e78fa\""},{"line_number":90,"context_line":"            },"},{"line_number":91,"context_line":"            \"pin\": \"1234\","},{"line_number":92,"context_line":"            \"vo_name\": \"myVO\","}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_4a2d59a7","line":89,"in_reply_to":"1ae5cdf2_37728de3","updated":"2014-06-13 09:04:35.000000000","message":"Sorry did not understand this one","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"efd62f93c0e019e3717bf73c232a79dffdfa7078","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            \"group_id\": \"22ef8a\","},{"line_number":87,"context_line":"            \"id\": \"6e78fa\","},{"line_number":88,"context_line":"            \"links\": {"},{"line_number":89,"context_line":"                \"self\": \"http://identity:35357/v3/OS-FEDERATION/v_o_roles/6e78fa\""},{"line_number":90,"context_line":"            },"},{"line_number":91,"context_line":"            \"pin\": \"1234\","},{"line_number":92,"context_line":"            \"vo_name\": \"myVO\","}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_90cf8128","line":89,"in_reply_to":"1ae5cdf2_4a2d59a7","updated":"2014-06-13 18:31:46.000000000","message":"looks like it was corrected, it was just a typo in the url.","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1bab24a916513ac7bf8f2f1ec5e48e504c837beb","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            },"},{"line_number":91,"context_line":"            \"pin\": \"1234\","},{"line_number":92,"context_line":"            \"vo_name\": \"myVO\","},{"line_number":93,"context_line":"            \"vo_role\": \"member\""},{"line_number":94,"context_line":"        }"},{"line_number":95,"context_line":"    }"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_57aab919","line":93,"updated":"2014-06-11 02:59:10.000000000","message":"missing vo_is_domain here, and a few other places too","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1bab24a916513ac7bf8f2f1ec5e48e504c837beb","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"### List VO roles: `GET /OS-FEDERATION/vo_roles`"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"  A user with an admin role should be able to see all VO roles whereas other"},{"line_number":100,"context_line":"  users should only see VO roles in which they have membership."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Response:"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_17f8317b","line":99,"updated":"2014-06-11 02:59:10.000000000","message":"this is an implementation detail, and can be removed.","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1bab24a916513ac7bf8f2f1ec5e48e504c837beb","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    {"},{"line_number":107,"context_line":"        \"vo_roles\": ["},{"line_number":108,"context_line":"            \"vo_role\": {"},{"line_number":109,"context_line":"                \"automatic_join\": false,"},{"line_number":110,"context_line":"                \"description\": \"A Virtual Organisation Role\","},{"line_number":111,"context_line":"                \"enabled\": true,"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_971281b2","line":108,"updated":"2014-06-11 02:59:10.000000000","message":"normally we don\u0027t double encapsulate like this,\n\nhttps://github.com/openstack/identity-api/blob/master/v3/src/markdown/identity-api-v3.md#list-users-get-users\n\n  vo_roles: [{name, description}, {name, description}]\n\ninstead of \n\n  vo_roles: [vo_role:{name, description}, vo_role:{name, description}]\n\nas it\u0027s already implied","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1bab24a916513ac7bf8f2f1ec5e48e504c837beb","unresolved":false,"context_lines":[{"line_number":176,"context_line":"Any of the following parameters can be updated: automatic_join, description,"},{"line_number":177,"context_line":"enabled, pin, vo_is_domain, vo_name, vo_role. They take effect immediately."},{"line_number":178,"context_line":"Updating the last three parameters will cause a new VO role to be created, the"},{"line_number":179,"context_line":"members to be copied across, then the original VO role to be deleted."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Request:"},{"line_number":182,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_5758f955","line":179,"updated":"2014-06-11 02:59:10.000000000","message":"members meaning users?","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"26c8dd64d9c9a249d46a1e831386d2a7bd8d2751","unresolved":false,"context_lines":[{"line_number":176,"context_line":"Any of the following parameters can be updated: automatic_join, description,"},{"line_number":177,"context_line":"enabled, pin, vo_is_domain, vo_name, vo_role. They take effect immediately."},{"line_number":178,"context_line":"Updating the last three parameters will cause a new VO role to be created, the"},{"line_number":179,"context_line":"members to be copied across, then the original VO role to be deleted."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Request:"},{"line_number":182,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_0a0ef13a","line":179,"in_reply_to":"1ae5cdf2_5758f955","updated":"2014-06-13 09:04:35.000000000","message":"we should say \"role occupants\" instead of members","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1bab24a916513ac7bf8f2f1ec5e48e504c837beb","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    {"},{"line_number":194,"context_line":"        \"vo_role\": {"},{"line_number":195,"context_line":"                \"automatic_join\": false,"},{"line_number":196,"context_line":"                \"description\": \"A Virtual Organisation\","},{"line_number":197,"context_line":"                \"enabled\": false,"},{"line_number":198,"context_line":"                \"group_id\": \"22ef8a\","}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_774975b6","line":195,"updated":"2014-06-11 02:59:10.000000000","message":"indentation is a bit off here","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":2448,"name":"Diane Fleming","email":"dfleming@austin.rr.com","username":"diane-fleming"},"change_message_id":"6386412e4936db4019d85f1532cb4f1e4091d5e7","unresolved":false,"context_lines":[{"line_number":413,"context_line":"    }"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"Users may check the status of a join request to a specific virtual organisation."},{"line_number":417,"context_line":"The HTTP code should determine the status:"},{"line_number":418,"context_line":"    1. 200 indicates that the user belongs to the VO"},{"line_number":419,"context_line":"    2. 202 indicates that the user has made a request which has not yet been"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_5de9b3e4","line":416,"updated":"2014-06-12 20:12:39.000000000","message":"can check","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":2448,"name":"Diane Fleming","email":"dfleming@austin.rr.com","username":"diane-fleming"},"change_message_id":"6386412e4936db4019d85f1532cb4f1e4091d5e7","unresolved":false,"context_lines":[{"line_number":414,"context_line":""},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"Users may check the status of a join request to a specific virtual organisation."},{"line_number":417,"context_line":"The HTTP code should determine the status:"},{"line_number":418,"context_line":"    1. 200 indicates that the user belongs to the VO"},{"line_number":419,"context_line":"    2. 202 indicates that the user has made a request which has not yet been"},{"line_number":420,"context_line":"    approved."}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_9defbbe8","line":417,"updated":"2014-06-12 20:12:39.000000000","message":"indicates","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":2448,"name":"Diane Fleming","email":"dfleming@austin.rr.com","username":"diane-fleming"},"change_message_id":"6386412e4936db4019d85f1532cb4f1e4091d5e7","unresolved":false,"context_lines":[{"line_number":415,"context_line":""},{"line_number":416,"context_line":"Users may check the status of a join request to a specific virtual organisation."},{"line_number":417,"context_line":"The HTTP code should determine the status:"},{"line_number":418,"context_line":"    1. 200 indicates that the user belongs to the VO"},{"line_number":419,"context_line":"    2. 202 indicates that the user has made a request which has not yet been"},{"line_number":420,"context_line":"    approved."},{"line_number":421,"context_line":"    3. 404 indicates that the user has not requested membership, or that the"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_bdc1d74f","line":418,"updated":"2014-06-12 20:12:39.000000000","message":"- 200. The user belongs to xxx\n- 202. The user made a request ..\n- 404. The user ...\n\n(you don\u0027t need a numbered list, and you can simplify the text.)","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":2448,"name":"Diane Fleming","email":"dfleming@austin.rr.com","username":"diane-fleming"},"change_message_id":"6386412e4936db4019d85f1532cb4f1e4091d5e7","unresolved":false,"context_lines":[{"line_number":427,"context_line":""},{"line_number":428,"context_line":"    Status: 200 OK"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"Users may resign from a VO role"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"### Resign from a VO Role: `DELETE /OS-FEDERATION/vo_roles/members`"},{"line_number":433,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1ae5cdf2_1daacb84","line":430,"updated":"2014-06-12 20:12:39.000000000","message":"Users can resign from a VO role.","commit_id":"fe4b12fc35420338b4a0415adb7cf8ca232137e4"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"OpenStack Identity API v3 Virtual organisation management extension"},{"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\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 extension enables you to create and manage virtual organisations (VOs)"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_17bd4bb7","line":1,"updated":"2014-07-07 00:21:16.000000000","message":"One general question. After the vo_roles and the members are configures, a user who is a member of a VO (identified by user_id value) will automatically be a member of a certain, configure group?","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"f3e74ba88fa4bbdc69c0b846ad44c171f0874f3e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"OpenStack Identity API v3 Virtual organisation management extension"},{"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\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 extension enables you to create and manage virtual organisations (VOs)"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_4da60f55","line":1,"in_reply_to":"baada198_17bd4bb7","updated":"2014-07-09 14:48:56.000000000","message":"Yes. A mapping rule will be automatically created which maps the user with the federated user ID and IDP name into the group name.","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":6,"context_line":"collaborate together to share resources. Different users who need to be granted"},{"line_number":7,"context_line":"the same access rights to a set of VO resources are assigned the same VO role."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This API allows administrators to create, read, update and delete secret"},{"line_number":10,"context_line":"protected VO roles and users to self register to and resign from these VO roles."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"VO roles are mapped into OpenStack groups as follows:"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_97a15b96","line":9,"updated":"2014-07-07 00:21:16.000000000","message":"pin protected?","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"f3e74ba88fa4bbdc69c0b846ad44c171f0874f3e","unresolved":false,"context_lines":[{"line_number":6,"context_line":"collaborate together to share resources. Different users who need to be granted"},{"line_number":7,"context_line":"the same access rights to a set of VO resources are assigned the same VO role."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This API allows administrators to create, read, update and delete secret"},{"line_number":10,"context_line":"protected VO roles and users to self register to and resign from these VO roles."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"VO roles are mapped into OpenStack groups as follows:"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_ad3a4be5","line":9,"in_reply_to":"baada198_97a15b96","updated":"2014-07-09 14:48:56.000000000","message":"We originally had PIN/password and changed that to secret. Lets change it again to the following \n\nThis API allows administrators to create, read, update and delete VO roles that are protected by a secret (PIN or password) and users to self register to and resign from these VO roles by quoting the secret.","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This API allows administrators to create, read, update and delete secret"},{"line_number":10,"context_line":"protected VO roles and users to self register to and resign from these VO roles."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"VO roles are mapped into OpenStack groups as follows:"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"1. If the VO is a domain, the group name is the VO role name"},{"line_number":15,"context_line":"2. If there are multiple VOs in a domain, the group name is vo_name.vo_role"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_052d1895","line":12,"updated":"2014-07-07 00:21:16.000000000","message":"I assume like in all federation related stuff the groups must already exist in the Keystone, right?","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"f3e74ba88fa4bbdc69c0b846ad44c171f0874f3e","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This API allows administrators to create, read, update and delete secret"},{"line_number":10,"context_line":"protected VO roles and users to self register to and resign from these VO roles."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"VO roles are mapped into OpenStack groups as follows:"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"1. If the VO is a domain, the group name is the VO role name"},{"line_number":15,"context_line":"2. If there are multiple VOs in a domain, the group name is vo_name.vo_role"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_70fe4607","line":12,"in_reply_to":"baada198_052d1895","updated":"2014-07-09 14:48:56.000000000","message":"No, it will be created if it does not already exist. See the specification for details","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"  The name of the virtual organisation role."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"- `secret` (string)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"  The secret to be presented by users to register for this VO role."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_450c703b","line":35,"updated":"2014-07-07 00:21:16.000000000","message":"You use \u0027pin\u0027 everywhere else, so I guess this was pin\u0027s predecessor, right?","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"f3e74ba88fa4bbdc69c0b846ad44c171f0874f3e","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"  The name of the virtual organisation role."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"- `secret` (string)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"  The secret to be presented by users to register for this VO role."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_d00d5239","line":35,"in_reply_to":"baada198_450c703b","updated":"2014-07-09 14:48:56.000000000","message":"We will be consistent in the next version","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            \"automatic_join\": false,"},{"line_number":83,"context_line":"            \"description\": \"The Keystone developers\","},{"line_number":84,"context_line":"            \"enabled\": true,"},{"line_number":85,"context_line":"            \"group_id\": \"22ef8a\","},{"line_number":86,"context_line":"            \"id\": \"6e78fa\","},{"line_number":87,"context_line":"            \"links\": {"},{"line_number":88,"context_line":"                \"self\": \"http://identity:35357/v3/OS-FEDERATION/vo_roles/6e78fa\""}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_e529048b","line":85,"updated":"2014-07-07 00:21:16.000000000","message":"Hm, so this group_id is an effect of mapping from vo_name from the requests?\nIf so,  group \u002722ef8a\u0027 is simply a keystone-dev.member, right? (I am trying to see if my understandind is correct).","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"f3e74ba88fa4bbdc69c0b846ad44c171f0874f3e","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            \"automatic_join\": false,"},{"line_number":83,"context_line":"            \"description\": \"The Keystone developers\","},{"line_number":84,"context_line":"            \"enabled\": true,"},{"line_number":85,"context_line":"            \"group_id\": \"22ef8a\","},{"line_number":86,"context_line":"            \"id\": \"6e78fa\","},{"line_number":87,"context_line":"            \"links\": {"},{"line_number":88,"context_line":"                \"self\": \"http://identity:35357/v3/OS-FEDERATION/vo_roles/6e78fa\""}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_b01ffe5a","line":85,"in_reply_to":"baada198_e529048b","updated":"2014-07-09 14:48:56.000000000","message":"yes","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        }"},{"line_number":139,"context_line":"    }"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"### Get a VO role: `GET /OS-FEDERATION/v_o_roles/{vo_role_id}`"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Response:"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_25205c9a","line":141,"updated":"2014-07-07 00:21:16.000000000","message":"vo_roles instead of v_o_roles?","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"f3e74ba88fa4bbdc69c0b846ad44c171f0874f3e","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        }"},{"line_number":139,"context_line":"    }"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"### Get a VO role: `GET /OS-FEDERATION/v_o_roles/{vo_role_id}`"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Response:"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_304a0e56","line":141,"in_reply_to":"baada198_25205c9a","updated":"2014-07-09 14:48:56.000000000","message":"Yes","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":208,"context_line":"-------------------------------"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"### Add VO role member: `PUT /OS-FEDERATION/vo_roles/{vo_role-id}/members/{user-id}`"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"Note. This is equivalent to adding an attribute mapping but is a very restricted"},{"line_number":214,"context_line":"subset of the attribute mapping capability"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_2a82ebff","line":211,"updated":"2014-07-07 00:21:16.000000000","message":"I think all \u0027-\u0027 should be replaced with \u0027_\u0027 ?","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"f3e74ba88fa4bbdc69c0b846ad44c171f0874f3e","unresolved":false,"context_lines":[{"line_number":208,"context_line":"-------------------------------"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"### Add VO role member: `PUT /OS-FEDERATION/vo_roles/{vo_role-id}/members/{user-id}`"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"Note. This is equivalent to adding an attribute mapping but is a very restricted"},{"line_number":214,"context_line":"subset of the attribute mapping capability"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_b0a45e09","line":211,"in_reply_to":"baada198_2a82ebff","updated":"2014-07-09 14:48:56.000000000","message":"thanks","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":212,"context_line":""},{"line_number":213,"context_line":"Note. This is equivalent to adding an attribute mapping but is a very restricted"},{"line_number":214,"context_line":"subset of the attribute mapping capability"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"Response:"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    Status: 200 OK"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_ca996f7a","line":215,"updated":"2014-07-07 00:21:16.000000000","message":"Is the request not pasted on purpose?","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":6534,"name":"David Chadwick","email":"d.w.chadwick@truetrust.co.uk","username":"d-w-chadwick"},"change_message_id":"f3e74ba88fa4bbdc69c0b846ad44c171f0874f3e","unresolved":false,"context_lines":[{"line_number":212,"context_line":""},{"line_number":213,"context_line":"Note. This is equivalent to adding an attribute mapping but is a very restricted"},{"line_number":214,"context_line":"subset of the attribute mapping capability"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"Response:"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    Status: 200 OK"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_06bcd86b","line":215,"in_reply_to":"baada198_ca996f7a","updated":"2014-07-09 14:48:56.000000000","message":"No body is needed as no further info is needed apart from the URL","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    Status: 200 OK"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    {"},{"line_number":221,"context_line":"        {"},{"line_number":222,"context_line":"            \"id\": \"34cb2d\","},{"line_number":223,"context_line":"            \"user_id\": \"abc@idp\","}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_2add8b42","line":220,"updated":"2014-07-07 00:21:16.000000000","message":"missing property name","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    {"},{"line_number":221,"context_line":"        {"},{"line_number":222,"context_line":"            \"id\": \"34cb2d\","},{"line_number":223,"context_line":"            \"user_id\": \"abc@idp\","},{"line_number":224,"context_line":"            \"idp\": \"64ef2a\""},{"line_number":225,"context_line":"        }"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_0a8fe72a","line":222,"updated":"2014-07-07 00:21:16.000000000","message":"is the id the vo_role_id from the calling URL?","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    Status: 200 OK"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"    {"},{"line_number":235,"context_line":"        {"},{"line_number":236,"context_line":"            \"id\": \"34cb2d\","},{"line_number":237,"context_line":"            \"user_id\": \"abc@idp\","}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_6aea23dc","line":234,"updated":"2014-07-07 00:21:16.000000000","message":"missing property name","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            \"id\": \"34cb2d\","},{"line_number":237,"context_line":"            \"user_id\": \"abc@idp\","},{"line_number":238,"context_line":"            \"idp\": \"64ef2a\""},{"line_number":239,"context_line":"        }"},{"line_number":240,"context_line":"    }"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"### List members with a VO role: `GET /OS-FEDERATION/vo_roles/{vo_role_id}/members`"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_853848d4","line":239,"updated":"2014-07-07 00:21:16.000000000","message":"I think this is also missing \u0027links\u0027 section? \nBy looking at the PROTOCOLS API docs it looks like there should be two objects in the \u0027links\u0027 section:\n\n\"links\": {\n     \"vo_role\": \u003curl\u003e,\n     \"self\": \u003curl\u003e\n}","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":260,"context_line":"                \"user_id\": \"xyz@idp\","},{"line_number":261,"context_line":"                \"idp\": \"64ef2a\""},{"line_number":262,"context_line":"            }"},{"line_number":263,"context_line":"        ]"},{"line_number":264,"context_line":"    }"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"### Remove VO role from user: `DELETE /OS-FEDERATION/vo_roles/{vo_role_id}/member/{user-id}`"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_aaf0bbc9","line":263,"updated":"2014-07-07 00:21:16.000000000","message":"missing global \u0027links\u0027 section, as well as members\u0027 links.","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        \"new_vo_role_id: \"125adf\""},{"line_number":280,"context_line":"    }"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"### List VO role membership user requests: `GET /OS-FEDERATION/vo_roles/requests`"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"Response:"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_a54aac52","line":282,"updated":"2014-07-07 00:21:16.000000000","message":"Did you skip GET /OS-FEDERATION/vo_roles/requests/{vo_request_id}` intentionally?","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":302,"context_line":"                \"vo_role\": \"admin\","},{"line_number":303,"context_line":"                \"user_id\": \"efg@idp\""},{"line_number":304,"context_line":"            }"},{"line_number":305,"context_line":"        ]"},{"line_number":306,"context_line":"    }"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"### Approve VO role membership user request: `HEAD /OS-FEDERATION/vo_roles/requests/{vo_request_id}`"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_caeb2fda","line":305,"updated":"2014-07-07 00:21:16.000000000","message":"missing global \u0027links\u0027 section.\nAlso, I am not sure, but are we okay skipping \u0027links\u0027 if they are empty (talking about vo_roles requests\u0027 links section)?","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":317,"context_line":""},{"line_number":318,"context_line":"Status: 204 No Content"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"Users can become blacklisted if they make too many wrong attempts at joining a"},{"line_number":321,"context_line":"VO this will mean that all further attempts to join a VO will fail and an"},{"line_number":322,"context_line":"administrator must remove the user from the blacklist for that user to be able"},{"line_number":323,"context_line":"to join a VO."}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_45f630fa","line":320,"updated":"2014-07-07 00:21:16.000000000","message":"They cannot be blacklisted by administrator, only automatically, right?","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":321,"context_line":"VO this will mean that all further attempts to join a VO will fail and an"},{"line_number":322,"context_line":"administrator must remove the user from the blacklist for that user to be able"},{"line_number":323,"context_line":"to join a VO."},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"### List blacklisted users for VO role: `GET /OS-FEDERATION/vo_roles/{vo_role_id}/blacklist`"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"Response:"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_4571d0a6","line":324,"updated":"2014-07-07 00:21:16.000000000","message":"Was GET /OS-FEDERATION/vo_roles/{vo_role_id}/blacklist/{vo_blacklist_id} skipped intentionally?","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":340,"context_line":"                \"idp\": \"64ef2a\","},{"line_number":341,"context_line":"                \"vo_role\": \"66bb3e\""},{"line_number":342,"context_line":"            }"},{"line_number":343,"context_line":"        ]"},{"line_number":344,"context_line":"    }"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"### List blacklisted users for all VO roles: `GET /OS-FEDERATION/vo_blacklist`"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_eabd53d9","line":343,"updated":"2014-07-07 00:21:16.000000000","message":"missing global \u0027links\u0027 section.\nAlso, I am not sure, but are we okay skipping \u0027links\u0027 if they are empty (talking about vo_roles requests\u0027 links section)?","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":361,"context_line":"                \"idp\": \"64ef2a\","},{"line_number":362,"context_line":"                \"vo_role\": \"7feab4\""},{"line_number":363,"context_line":"            }"},{"line_number":364,"context_line":"        ]"},{"line_number":365,"context_line":"    }"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"### Delete blacklist entry: `DELETE /OS-FEDERATION/vo_roles/{vo_role_id}/blacklist/{vo_blacklist_id}`"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_0ac1a753","line":364,"updated":"2014-07-07 00:21:16.000000000","message":"missing global \u0027links\u0027 section\nAlso, I am not sure, but are we okay skipping \u0027links\u0027 if they are empty (talking about users\u0027 links section)?","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":406,"context_line":"            \"status\": \"pending\","},{"line_number":407,"context_line":"            \"vo_name\": \"keystone-dev\","},{"line_number":408,"context_line":"            \"vo_role\": \"member\""},{"line_number":409,"context_line":"        }"},{"line_number":410,"context_line":"    }"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_2ab4abf0","line":409,"updated":"2014-07-07 00:21:16.000000000","message":"I am not sure here, but \u0027links\u0027 should also be included?","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"fc9b37983d488c47defc2a4e52b0daa496db32fd","unresolved":false,"context_lines":[{"line_number":436,"context_line":"           \"vo_name\": \"keystone-dev\","},{"line_number":437,"context_line":"           \"vo_role\": \"member\""},{"line_number":438,"context_line":"        }"},{"line_number":439,"context_line":"    }"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"Response:"},{"line_number":442,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":6,"id":"baada198_4ab71ff5","line":439,"updated":"2014-07-07 00:21:16.000000000","message":"I guess links\u0027 should also be included?","commit_id":"f2be051111278f0d2bdb77cc43e9f658eb7da1ed"}]}
