)]}'
{"doc/source/contributor/internals/policy.rst":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"83721e3ef05f3458fa4cab0dd9e211b586353831","unresolved":false,"context_lines":[{"line_number":99,"context_line":"* If the attribute is a composite one then further rules will be created;"},{"line_number":100,"context_line":"  These will match policy names in the form"},{"line_number":101,"context_line":"  ``\u003coperation\u003e_\u003cresource\u003e:\u003cattribute\u003e:\u003csub_attribute\u003e``."},{"line_number":102,"context_line":"  An \u0027And\u0027 relationship will be used in this case too."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"As all the rules to verify are linked by \u0027And\u0027 relationships, all the policy"},{"line_number":105,"context_line":"checks should succeed in order for a request to be authorized. Rule"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_a28efe24","line":102,"range":{"start_line":102,"start_character":5,"end_line":102,"end_character":10},"updated":"2019-01-07 11:44:48.000000000","message":"should this be in `` instead of \u0027 too?","commit_id":"d33407e136413ad9c1839d8e9ec57b8a985fde53"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"84ec6566f9e3267dd596f5a1e69d08f5c4695e91","unresolved":false,"context_lines":[{"line_number":99,"context_line":"* If the attribute is a composite one then further rules will be created;"},{"line_number":100,"context_line":"  These will match policy names in the form"},{"line_number":101,"context_line":"  ``\u003coperation\u003e_\u003cresource\u003e:\u003cattribute\u003e:\u003csub_attribute\u003e``."},{"line_number":102,"context_line":"  An \u0027And\u0027 relationship will be used in this case too."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"As all the rules to verify are linked by \u0027And\u0027 relationships, all the policy"},{"line_number":105,"context_line":"checks should succeed in order for a request to be authorized. Rule"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_387e96e4","line":102,"range":{"start_line":102,"start_character":5,"end_line":102,"end_character":10},"in_reply_to":"dfd5e7cf_a28efe24","updated":"2019-01-09 07:09:04.000000000","message":"This is not a literal so I think the current one is good.","commit_id":"d33407e136413ad9c1839d8e9ec57b8a985fde53"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"83721e3ef05f3458fa4cab0dd9e211b586353831","unresolved":false,"context_lines":[{"line_number":309,"context_line":""},{"line_number":310,"context_line":"The following is the guideline of policy definitions."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"* All policies of ``\u003caction\u003e_\u003cresource\u003e`` must be defined"},{"line_number":313,"context_line":"  for all types of operations (\"create\", \"update\", \"delete\" and \"get\")."},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"* Member actions for individual resources must be defined."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_22a20e9c","line":312,"range":{"start_line":312,"start_character":20,"end_line":312,"end_character":39},"updated":"2019-01-07 11:44:48.000000000","message":"I\u0027m not sure if it\u0027s worth to mention but also GET for resourceS should be defined, right?","commit_id":"d33407e136413ad9c1839d8e9ec57b8a985fde53"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f9d1c99fa89ba02cda3a8121130db613a4b37015","unresolved":false,"context_lines":[{"line_number":309,"context_line":""},{"line_number":310,"context_line":"The following is the guideline of policy definitions."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"* All policies of ``\u003caction\u003e_\u003cresource\u003e`` must be defined"},{"line_number":313,"context_line":"  for all types of operations (\"create\", \"update\", \"delete\" and \"get\")."},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"* Member actions for individual resources must be defined."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_76d0caf8","line":312,"range":{"start_line":312,"start_character":20,"end_line":312,"end_character":39},"in_reply_to":"dfd5e7cf_22a20e9c","updated":"2019-01-08 07:23:57.000000000","message":"The plural form version \"get_resourceS\" is unnecessary. There is no clear guideline so far and we had confusion on defining policies. It is worth mentioned. I will add it.","commit_id":"d33407e136413ad9c1839d8e9ec57b8a985fde53"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"84ec6566f9e3267dd596f5a1e69d08f5c4695e91","unresolved":false,"context_lines":[{"line_number":309,"context_line":""},{"line_number":310,"context_line":"The following is the guideline of policy definitions."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"* All policies of ``\u003caction\u003e_\u003cresource\u003e`` must be defined"},{"line_number":313,"context_line":"  for all types of operations (\"create\", \"update\", \"delete\" and \"get\")."},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"* Member actions for individual resources must be defined."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_53e6dd46","line":312,"range":{"start_line":312,"start_character":20,"end_line":312,"end_character":39},"in_reply_to":"dfd5e7cf_76d0caf8","updated":"2019-01-09 07:09:04.000000000","message":"Done","commit_id":"d33407e136413ad9c1839d8e9ec57b8a985fde53"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"83721e3ef05f3458fa4cab0dd9e211b586353831","unresolved":false,"context_lines":[{"line_number":317,"context_line":""},{"line_number":318,"context_line":"* All policies with attributes on \"create\", \"update\" and \"delete\" actions must"},{"line_number":319,"context_line":"  be defined. ``\u003caction\u003e_\u003cresource\u003e:\u003cattribute\u003e(:\u003csub_attribute\u003e)`` policy is"},{"line_number":320,"context_line":"  required for attributes with ``enforce_policy``. Note that it is recommended"},{"line_number":321,"context_line":"  to define even if a rule is same as for ``\u003caction\u003e_\u003cresource\u003e`` from the"},{"line_number":322,"context_line":"  documentation perspective."},{"line_number":323,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_c2bc62bd","line":320,"range":{"start_line":320,"start_character":32,"end_line":320,"end_character":48},"updated":"2019-01-07 11:44:48.000000000","message":"in api-def, right?","commit_id":"d33407e136413ad9c1839d8e9ec57b8a985fde53"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"84ec6566f9e3267dd596f5a1e69d08f5c4695e91","unresolved":false,"context_lines":[{"line_number":317,"context_line":""},{"line_number":318,"context_line":"* All policies with attributes on \"create\", \"update\" and \"delete\" actions must"},{"line_number":319,"context_line":"  be defined. ``\u003caction\u003e_\u003cresource\u003e:\u003cattribute\u003e(:\u003csub_attribute\u003e)`` policy is"},{"line_number":320,"context_line":"  required for attributes with ``enforce_policy``. Note that it is recommended"},{"line_number":321,"context_line":"  to define even if a rule is same as for ``\u003caction\u003e_\u003cresource\u003e`` from the"},{"line_number":322,"context_line":"  documentation perspective."},{"line_number":323,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_f3d03153","line":320,"range":{"start_line":320,"start_character":32,"end_line":320,"end_character":48},"in_reply_to":"dfd5e7cf_36da4217","updated":"2019-01-09 07:09:04.000000000","message":"Done","commit_id":"d33407e136413ad9c1839d8e9ec57b8a985fde53"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f9d1c99fa89ba02cda3a8121130db613a4b37015","unresolved":false,"context_lines":[{"line_number":317,"context_line":""},{"line_number":318,"context_line":"* All policies with attributes on \"create\", \"update\" and \"delete\" actions must"},{"line_number":319,"context_line":"  be defined. ``\u003caction\u003e_\u003cresource\u003e:\u003cattribute\u003e(:\u003csub_attribute\u003e)`` policy is"},{"line_number":320,"context_line":"  required for attributes with ``enforce_policy``. Note that it is recommended"},{"line_number":321,"context_line":"  to define even if a rule is same as for ``\u003caction\u003e_\u003cresource\u003e`` from the"},{"line_number":322,"context_line":"  documentation perspective."},{"line_number":323,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_36da4217","line":320,"range":{"start_line":320,"start_character":32,"end_line":320,"end_character":48},"in_reply_to":"dfd5e7cf_c2bc62bd","updated":"2019-01-08 07:23:57.000000000","message":"Yes, it is the API definition in neutron-lib. I will clarify it in the next patch set.","commit_id":"d33407e136413ad9c1839d8e9ec57b8a985fde53"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"18906340e24255e5ece662c6649c0960c54b7ea0","unresolved":false,"context_lines":[{"line_number":325,"context_line":"  ``get_\u003cresource\u003e:\u003cattribute\u003e(:\u003csub_attribute\u003e)``,"},{"line_number":326,"context_line":"  the following guideline is applied:"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"  * a policy with an attribute must be defined if the policy is different from"},{"line_number":329,"context_line":"    the policy for ``get_\u003cresource\u003e`` (without attributes)."},{"line_number":330,"context_line":"  * If a policy with an attribute is same as for ``get_\u003cresource\u003e``, there is"},{"line_number":331,"context_line":"    no need to define it explicitly."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_04f811e3","line":328,"range":{"start_line":328,"start_character":4,"end_line":328,"end_character":5},"updated":"2019-01-08 23:34:32.000000000","message":"A","commit_id":"d33407e136413ad9c1839d8e9ec57b8a985fde53"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"84ec6566f9e3267dd596f5a1e69d08f5c4695e91","unresolved":false,"context_lines":[{"line_number":325,"context_line":"  ``get_\u003cresource\u003e:\u003cattribute\u003e(:\u003csub_attribute\u003e)``,"},{"line_number":326,"context_line":"  the following guideline is applied:"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"  * a policy with an attribute must be defined if the policy is different from"},{"line_number":329,"context_line":"    the policy for ``get_\u003cresource\u003e`` (without attributes)."},{"line_number":330,"context_line":"  * If a policy with an attribute is same as for ``get_\u003cresource\u003e``, there is"},{"line_number":331,"context_line":"    no need to define it explicitly."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_d85bca84","line":328,"range":{"start_line":328,"start_character":4,"end_line":328,"end_character":5},"in_reply_to":"dfd5e7cf_04f811e3","updated":"2019-01-09 07:09:04.000000000","message":"Done","commit_id":"d33407e136413ad9c1839d8e9ec57b8a985fde53"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"57a99fd24e30955f2c8f45fcc9c869fed727577b","unresolved":false,"context_lines":[{"line_number":329,"context_line":"    the policy for ``get_\u003cresource\u003e`` (without attributes)."},{"line_number":330,"context_line":"  * If a policy with an attribute is same as for ``get_\u003cresource\u003e``, there is"},{"line_number":331,"context_line":"    no need to define it explicitly."},{"line_number":332,"context_line":"  * If an attribute is marked as ``enforce_policy``, it is recommended to"},{"line_number":333,"context_line":"    define the corresponding policy with the attribute."},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"Backgrounds"},{"line_number":336,"context_line":"+++++++++++"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_9f2a35e5","line":333,"range":{"start_line":332,"start_character":1,"end_line":333,"end_character":55},"updated":"2019-01-07 10:25:07.000000000","message":"This third guideline might need a discussion.\n\nHere is an example.\nThe device_owner attribute of the port resource is marked as enforce_policy True [1] but this attribute is visible to all valid users (which falls back to the \"default\" policy).\n\nWe don\u0027t define policies for such attributes explicitly now, so I would like to hear opinions from others before moving the thing forward.\n\n[1] https://github.com/openstack/neutron-lib/blob/master/neutron_lib/api/definitions/port.py#L77-L83","commit_id":"d33407e136413ad9c1839d8e9ec57b8a985fde53"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"83721e3ef05f3458fa4cab0dd9e211b586353831","unresolved":false,"context_lines":[{"line_number":329,"context_line":"    the policy for ``get_\u003cresource\u003e`` (without attributes)."},{"line_number":330,"context_line":"  * If a policy with an attribute is same as for ``get_\u003cresource\u003e``, there is"},{"line_number":331,"context_line":"    no need to define it explicitly."},{"line_number":332,"context_line":"  * If an attribute is marked as ``enforce_policy``, it is recommended to"},{"line_number":333,"context_line":"    define the corresponding policy with the attribute."},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"Backgrounds"},{"line_number":336,"context_line":"+++++++++++"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_e2f2c69a","line":333,"range":{"start_line":332,"start_character":1,"end_line":333,"end_character":55},"in_reply_to":"dfd5e7cf_9f2a35e5","updated":"2019-01-07 11:44:48.000000000","message":"IMHO it would be good to make GET consistent with all other actions here, so defining it explicitly would be good in such case too","commit_id":"d33407e136413ad9c1839d8e9ec57b8a985fde53"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"18906340e24255e5ece662c6649c0960c54b7ea0","unresolved":false,"context_lines":[{"line_number":345,"context_line":"It is better to have more detail backgrounds of policies with attributes of"},{"line_number":346,"context_line":"\"get\" actions like ``get_\u003cresource\u003e:\u003cattribute\u003e(:\u003csub_attribute\u003e)``."},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"* The second item is for simplicity. We check all attributes of a target"},{"line_number":349,"context_line":"  resource in the process of :ref:`response_filtering` so it leads to a long"},{"line_number":350,"context_line":"  long policy definitions for \"get\" actions in our documentation. It is not"},{"line_number":351,"context_line":"  happy for operators either."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_440a99d2","line":348,"range":{"start_line":348,"start_character":6,"end_line":348,"end_character":17},"updated":"2019-01-08 23:34:32.000000000","message":"For me, it is not straightforward that which item is referred.","commit_id":"d33407e136413ad9c1839d8e9ec57b8a985fde53"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"84ec6566f9e3267dd596f5a1e69d08f5c4695e91","unresolved":false,"context_lines":[{"line_number":345,"context_line":"It is better to have more detail backgrounds of policies with attributes of"},{"line_number":346,"context_line":"\"get\" actions like ``get_\u003cresource\u003e:\u003cattribute\u003e(:\u003csub_attribute\u003e)``."},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"* The second item is for simplicity. We check all attributes of a target"},{"line_number":349,"context_line":"  resource in the process of :ref:`response_filtering` so it leads to a long"},{"line_number":350,"context_line":"  long policy definitions for \"get\" actions in our documentation. It is not"},{"line_number":351,"context_line":"  happy for operators either."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_38677650","line":348,"range":{"start_line":348,"start_character":6,"end_line":348,"end_character":17},"in_reply_to":"dfd5e7cf_440a99d2","updated":"2019-01-09 07:09:04.000000000","message":"I moved the description to the guideline part.","commit_id":"d33407e136413ad9c1839d8e9ec57b8a985fde53"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"18906340e24255e5ece662c6649c0960c54b7ea0","unresolved":false,"context_lines":[{"line_number":350,"context_line":"  long policy definitions for \"get\" actions in our documentation. It is not"},{"line_number":351,"context_line":"  happy for operators either."},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"* The third item is for clarification. If an attribute is marked as"},{"line_number":354,"context_line":"  ``enforce_policy``, for example, the neutron API limits to set such attribute"},{"line_number":355,"context_line":"  only to admin users but allows to retrieve a value for regular users. If"},{"line_number":356,"context_line":"  policies for the attribute are different across the types of operations, it"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_e40e2de4","line":353,"range":{"start_line":353,"start_character":6,"end_line":353,"end_character":16},"updated":"2019-01-08 23:34:32.000000000","message":"Ditto","commit_id":"d33407e136413ad9c1839d8e9ec57b8a985fde53"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"84ec6566f9e3267dd596f5a1e69d08f5c4695e91","unresolved":false,"context_lines":[{"line_number":350,"context_line":"  long policy definitions for \"get\" actions in our documentation. It is not"},{"line_number":351,"context_line":"  happy for operators either."},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"* The third item is for clarification. If an attribute is marked as"},{"line_number":354,"context_line":"  ``enforce_policy``, for example, the neutron API limits to set such attribute"},{"line_number":355,"context_line":"  only to admin users but allows to retrieve a value for regular users. If"},{"line_number":356,"context_line":"  policies for the attribute are different across the types of operations, it"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_53bfbdfa","line":353,"range":{"start_line":353,"start_character":6,"end_line":353,"end_character":16},"in_reply_to":"dfd5e7cf_e40e2de4","updated":"2019-01-09 07:09:04.000000000","message":"Done. Same as  the above.","commit_id":"d33407e136413ad9c1839d8e9ec57b8a985fde53"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"7c0308e749824805024d40413e451fef2ba387b7","unresolved":false,"context_lines":[{"line_number":320,"context_line":""},{"line_number":321,"context_line":"  * Note that ``get_\u003cresourceS\u003e`` (get plural) is unnecessary."},{"line_number":322,"context_line":"    The neutron API layer use a single form policy ``get_\u003cresource\u003e``"},{"line_number":323,"context_line":"    when listing resources [#]_ [#]_."},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"* Member actions for individual resources must be defined."},{"line_number":326,"context_line":"  For example, ``add_router_interface`` of ``router`` resource."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfd5e7cf_ef303deb","line":323,"updated":"2019-01-09 10:43:41.000000000","message":"thx for this clarification,\nIMHO this indentation is not needed and this would look better if it would be second bullet point on same level as first one","commit_id":"2098e210448f7833507abff1ce68b5296fda005a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1372b6941bce3888c06a18866f95649f3ea3c9f6","unresolved":false,"context_lines":[{"line_number":320,"context_line":""},{"line_number":321,"context_line":"  * Note that ``get_\u003cresourceS\u003e`` (get plural) is unnecessary."},{"line_number":322,"context_line":"    The neutron API layer use a single form policy ``get_\u003cresource\u003e``"},{"line_number":323,"context_line":"    when listing resources [#]_ [#]_."},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"* Member actions for individual resources must be defined."},{"line_number":326,"context_line":"  For example, ``add_router_interface`` of ``router`` resource."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfd5e7cf_797964fa","line":323,"in_reply_to":"dfd5e7cf_00745d67","updated":"2019-01-10 12:25:24.000000000","message":"Thx. It looks much better now in rendered html page.","commit_id":"2098e210448f7833507abff1ce68b5296fda005a"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"581b39685b337717cc1293a1f724e285f53e16cc","unresolved":false,"context_lines":[{"line_number":320,"context_line":""},{"line_number":321,"context_line":"  * Note that ``get_\u003cresourceS\u003e`` (get plural) is unnecessary."},{"line_number":322,"context_line":"    The neutron API layer use a single form policy ``get_\u003cresource\u003e``"},{"line_number":323,"context_line":"    when listing resources [#]_ [#]_."},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"* Member actions for individual resources must be defined."},{"line_number":326,"context_line":"  For example, ``add_router_interface`` of ``router`` resource."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfd5e7cf_00745d67","line":323,"in_reply_to":"dfd5e7cf_ef303deb","updated":"2019-01-10 09:22:35.000000000","message":"I first thought the bullet was easier to read, but on a second thought I agree with you. I updated it,","commit_id":"2098e210448f7833507abff1ce68b5296fda005a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"7c0308e749824805024d40413e451fef2ba387b7","unresolved":false,"context_lines":[{"line_number":339,"context_line":"    the policy for ``get_\u003cresource\u003e`` (without attributes)."},{"line_number":340,"context_line":"  * If a policy with an attribute is same as for ``get_\u003cresource\u003e``, there is"},{"line_number":341,"context_line":"    no need to define it explicitly."},{"line_number":342,"context_line":"    "},{"line_number":343,"context_line":"    * This is for simplicity. We check all attributes of a target resource"},{"line_number":344,"context_line":"      in the process of :ref:`response_filtering` so it leads to a long long"},{"line_number":345,"context_line":"      policy definitions for \"get\" actions in our documentation."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfd5e7cf_cedc6048","line":342,"updated":"2019-01-09 10:43:41.000000000","message":"nitty nit: please remove those spaces if You can :)","commit_id":"2098e210448f7833507abff1ce68b5296fda005a"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"581b39685b337717cc1293a1f724e285f53e16cc","unresolved":false,"context_lines":[{"line_number":339,"context_line":"    the policy for ``get_\u003cresource\u003e`` (without attributes)."},{"line_number":340,"context_line":"  * If a policy with an attribute is same as for ``get_\u003cresource\u003e``, there is"},{"line_number":341,"context_line":"    no need to define it explicitly."},{"line_number":342,"context_line":"    "},{"line_number":343,"context_line":"    * This is for simplicity. We check all attributes of a target resource"},{"line_number":344,"context_line":"      in the process of :ref:`response_filtering` so it leads to a long long"},{"line_number":345,"context_line":"      policy definitions for \"get\" actions in our documentation."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfd5e7cf_206f2193","line":342,"in_reply_to":"dfd5e7cf_cedc6048","updated":"2019-01-10 09:22:35.000000000","message":"Done","commit_id":"2098e210448f7833507abff1ce68b5296fda005a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"7c0308e749824805024d40413e451fef2ba387b7","unresolved":false,"context_lines":[{"line_number":343,"context_line":"    * This is for simplicity. We check all attributes of a target resource"},{"line_number":344,"context_line":"      in the process of :ref:`response_filtering` so it leads to a long long"},{"line_number":345,"context_line":"      policy definitions for \"get\" actions in our documentation."},{"line_number":346,"context_line":"      It is not happy for operators either."},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"  * If an attribute is marked as ``enforce_policy``, it is recommended to"},{"line_number":349,"context_line":"    define the corresponding policy with the attribute."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfd5e7cf_6f81ad4a","line":346,"updated":"2019-01-09 10:43:41.000000000","message":"Do we really need this to be another bullet point? IMHO it looks a bit strange in generated html page: http://logs.openstack.org/28/628928/2/check/build-openstack-sphinx-docs/86fc762/html/contributor/internals/policy.html","commit_id":"2098e210448f7833507abff1ce68b5296fda005a"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"581b39685b337717cc1293a1f724e285f53e16cc","unresolved":false,"context_lines":[{"line_number":343,"context_line":"    * This is for simplicity. We check all attributes of a target resource"},{"line_number":344,"context_line":"      in the process of :ref:`response_filtering` so it leads to a long long"},{"line_number":345,"context_line":"      policy definitions for \"get\" actions in our documentation."},{"line_number":346,"context_line":"      It is not happy for operators either."},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"  * If an attribute is marked as ``enforce_policy``, it is recommended to"},{"line_number":349,"context_line":"    define the corresponding policy with the attribute."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfd5e7cf_e0683988","line":346,"in_reply_to":"dfd5e7cf_6f81ad4a","updated":"2019-01-10 09:22:35.000000000","message":"Done","commit_id":"2098e210448f7833507abff1ce68b5296fda005a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"7c0308e749824805024d40413e451fef2ba387b7","unresolved":false,"context_lines":[{"line_number":352,"context_line":"      for example, the neutron API limits to set such attribute only to admin"},{"line_number":353,"context_line":"      users but allows to retrieve a value for regular users. If policies for"},{"line_number":354,"context_line":"      the attribute are different across the types of operations, it is better"},{"line_number":355,"context_line":"      to define all of them explicitly."},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"Registering policies in neutron related projects"},{"line_number":358,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfd5e7cf_0f9821be","line":355,"updated":"2019-01-09 10:43:41.000000000","message":"same here","commit_id":"2098e210448f7833507abff1ce68b5296fda005a"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"581b39685b337717cc1293a1f724e285f53e16cc","unresolved":false,"context_lines":[{"line_number":352,"context_line":"      for example, the neutron API limits to set such attribute only to admin"},{"line_number":353,"context_line":"      users but allows to retrieve a value for regular users. If policies for"},{"line_number":354,"context_line":"      the attribute are different across the types of operations, it is better"},{"line_number":355,"context_line":"      to define all of them explicitly."},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"Registering policies in neutron related projects"},{"line_number":358,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfd5e7cf_8005adc4","line":355,"in_reply_to":"dfd5e7cf_0f9821be","updated":"2019-01-10 09:22:35.000000000","message":"Done","commit_id":"2098e210448f7833507abff1ce68b5296fda005a"}]}
