)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"78e7812cabc29d94c7532c4a2b0bafc8024bde0a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"UserWarning: Policy \"cyborg:device_profile:get_all\":\"rule:admin_or_owner\""},{"line_number":28,"context_line":"was deprecated in W in favor of"},{"line_number":29,"context_line":"\"cyborg:device_profile:get_all\":\"rule:system_or_project_reader\"."},{"line_number":30,"context_line":"Reason: request admin_or_owmer role is too strict forlisting device_profile."},{"line_number":31,"context_line":"Either ensure your deployment is ready for the new default or copy/paste the"},{"line_number":32,"context_line":"deprecated policy into your policy file and maintain it manually."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f560f44_4fc6169c","line":30,"range":{"start_line":30,"start_character":50,"end_line":30,"end_character":60},"updated":"2020-09-11 02:41:32.000000000","message":"for listing","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"78e7812cabc29d94c7532c4a2b0bafc8024bde0a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"UserWarning: Policy \"cyborg:device_profile:get_all\":\"rule:admin_or_owner\""},{"line_number":28,"context_line":"was deprecated in W in favor of"},{"line_number":29,"context_line":"\"cyborg:device_profile:get_all\":\"rule:system_or_project_reader\"."},{"line_number":30,"context_line":"Reason: request admin_or_owmer role is too strict forlisting device_profile."},{"line_number":31,"context_line":"Either ensure your deployment is ready for the new default or copy/paste the"},{"line_number":32,"context_line":"deprecated policy into your policy file and maintain it manually."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f560f44_afd53245","line":30,"range":{"start_line":30,"start_character":31,"end_line":30,"end_character":35},"updated":"2020-09-11 02:41:32.000000000","message":"rule","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"933a99d3af53fb958a1324baa36fcd8201924262","unresolved":false,"context_lines":[{"line_number":27,"context_line":"UserWarning: Policy \"cyborg:device_profile:get_all\":\"rule:admin_or_owner\""},{"line_number":28,"context_line":"was deprecated in W in favor of"},{"line_number":29,"context_line":"\"cyborg:device_profile:get_all\":\"rule:system_or_project_reader\"."},{"line_number":30,"context_line":"Reason: request admin_or_owmer role is too strict forlisting device_profile."},{"line_number":31,"context_line":"Either ensure your deployment is ready for the new default or copy/paste the"},{"line_number":32,"context_line":"deprecated policy into your policy file and maintain it manually."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f560f44_576e8c00","line":30,"range":{"start_line":30,"start_character":50,"end_line":30,"end_character":60},"in_reply_to":"9f560f44_4fc6169c","updated":"2020-09-15 10:32:50.000000000","message":"Done","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"933a99d3af53fb958a1324baa36fcd8201924262","unresolved":false,"context_lines":[{"line_number":27,"context_line":"UserWarning: Policy \"cyborg:device_profile:get_all\":\"rule:admin_or_owner\""},{"line_number":28,"context_line":"was deprecated in W in favor of"},{"line_number":29,"context_line":"\"cyborg:device_profile:get_all\":\"rule:system_or_project_reader\"."},{"line_number":30,"context_line":"Reason: request admin_or_owmer role is too strict forlisting device_profile."},{"line_number":31,"context_line":"Either ensure your deployment is ready for the new default or copy/paste the"},{"line_number":32,"context_line":"deprecated policy into your policy file and maintain it manually."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f560f44_776910f7","line":30,"range":{"start_line":30,"start_character":31,"end_line":30,"end_character":35},"in_reply_to":"9f560f44_afd53245","updated":"2020-09-15 10:32:50.000000000","message":"Done","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"78e7812cabc29d94c7532c4a2b0bafc8024bde0a","unresolved":false,"context_lines":[{"line_number":40,"context_line":"1. Add protection test for all APIs."},{"line_number":41,"context_line":"   A protection test is similar to an API test, but purely focused on the"},{"line_number":42,"context_line":"   authoritative outcome.In other words, protection testing is sufficient when"},{"line_number":43,"context_line":"   we can assert that a user is or isn’t allowed to do or see something. For"},{"line_number":44,"context_line":"   example, Users with a reader role on the system or a project shouldn’t be"},{"line_number":45,"context_line":"   able to make writable changes."},{"line_number":46,"context_line":"2. Add the following applicable six personas to cyborg and deprecate old ones:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f560f44_ef59eafc","line":43,"range":{"start_line":43,"start_character":35,"end_line":43,"end_character":40},"updated":"2020-09-11 02:41:32.000000000","message":"isn\u0027t","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"933a99d3af53fb958a1324baa36fcd8201924262","unresolved":false,"context_lines":[{"line_number":40,"context_line":"1. Add protection test for all APIs."},{"line_number":41,"context_line":"   A protection test is similar to an API test, but purely focused on the"},{"line_number":42,"context_line":"   authoritative outcome.In other words, protection testing is sufficient when"},{"line_number":43,"context_line":"   we can assert that a user is or isn’t allowed to do or see something. For"},{"line_number":44,"context_line":"   example, Users with a reader role on the system or a project shouldn’t be"},{"line_number":45,"context_line":"   able to make writable changes."},{"line_number":46,"context_line":"2. Add the following applicable six personas to cyborg and deprecate old ones:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f560f44_976f84f9","line":43,"range":{"start_line":43,"start_character":35,"end_line":43,"end_character":40},"in_reply_to":"9f560f44_ef59eafc","updated":"2020-09-15 10:32:50.000000000","message":"Done","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"78e7812cabc29d94c7532c4a2b0bafc8024bde0a","unresolved":false,"context_lines":[{"line_number":43,"context_line":"   we can assert that a user is or isn’t allowed to do or see something. For"},{"line_number":44,"context_line":"   example, Users with a reader role on the system or a project shouldn’t be"},{"line_number":45,"context_line":"   able to make writable changes."},{"line_number":46,"context_line":"2. Add the following applicable six personas to cyborg and deprecate old ones:"},{"line_number":47,"context_line":"   * project reader"},{"line_number":48,"context_line":"   * project member"},{"line_number":49,"context_line":"   * project admin"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f560f44_cf6066a8","line":46,"range":{"start_line":46,"start_character":32,"end_line":46,"end_character":35},"updated":"2020-09-11 02:41:32.000000000","message":"seven?","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"78e7812cabc29d94c7532c4a2b0bafc8024bde0a","unresolved":false,"context_lines":[{"line_number":55,"context_line":"4. Add protection test for all APIs."},{"line_number":56,"context_line":"   A protection test is similar to an API test, but purely focused on the"},{"line_number":57,"context_line":"   authoritative outcome.In other words, protection testing is sufficient when"},{"line_number":58,"context_line":"   we can assert that a user is or isn’t allowed to do or see something. For"},{"line_number":59,"context_line":"   example, Users with a reader role on the system or a project shouldn’t be"},{"line_number":60,"context_line":"   able to make writable changes."},{"line_number":61,"context_line":"5. Update policy documentation on cyborg-doc page"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f560f44_6f65daae","line":58,"range":{"start_line":58,"start_character":35,"end_line":58,"end_character":40},"updated":"2020-09-11 02:41:32.000000000","message":"ditto","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"d6b8562a0c87c04d4577b218ffd2e0246685cd0f","unresolved":false,"context_lines":[{"line_number":17,"context_line":"- Backward compatibility:"},{"line_number":18,"context_line":"    Old Rules and Defaults will keep working as it is because they"},{"line_number":19,"context_line":"    are added as deprecated rules and marked for removal in future"},{"line_number":20,"context_line":"    release. This means Existing deployement will keep working till"},{"line_number":21,"context_line":"    deprecated rules are there."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"- Below warning can be seen by operator to migrate the old policies"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"9f560f44_98cddfb9","line":20,"range":{"start_line":20,"start_character":24,"end_line":20,"end_character":32},"updated":"2020-09-15 01:17:22.000000000","message":"nit: existing","commit_id":"b1c223afd8fbd5821ab3dea26a33b28212165288"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"d6b8562a0c87c04d4577b218ffd2e0246685cd0f","unresolved":false,"context_lines":[{"line_number":40,"context_line":"   A protection test is similar to an API test, but purely focused on the"},{"line_number":41,"context_line":"   authoritative outcome.In other words, protection testing is sufficient when"},{"line_number":42,"context_line":"   we can assert that a user is or isn\u0027t allowed to do or see something. For"},{"line_number":43,"context_line":"   example, Users with a reader role on the system or a project shouldn’t be"},{"line_number":44,"context_line":"   able to make writable changes."},{"line_number":45,"context_line":"2. Add the following applicable personas to cyborg and deprecate old ones:"},{"line_number":46,"context_line":"   * project reader"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"9f560f44_d8be37ff","line":43,"range":{"start_line":43,"start_character":12,"end_line":43,"end_character":17},"updated":"2020-09-15 01:17:22.000000000","message":"nit: users","commit_id":"b1c223afd8fbd5821ab3dea26a33b28212165288"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"d6b8562a0c87c04d4577b218ffd2e0246685cd0f","unresolved":false,"context_lines":[{"line_number":51,"context_line":"   * system admin or owner"},{"line_number":52,"context_line":"   * system or project reader"},{"line_number":53,"context_line":"3. Rewrite check string(authorization rules) using new personas for all APIs"},{"line_number":54,"context_line":"4. Update policy documentation on cyborg-doc page"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This patch refreshed cyborg default RBAC policy to scoped RBAC policy, and"},{"line_number":57,"context_line":"reorganized the policy framework into a more logical way:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"9f560f44_7833abc5","line":54,"range":{"start_line":54,"start_character":3,"end_line":54,"end_character":49},"updated":"2020-09-15 01:17:22.000000000","message":"Good idea.","commit_id":"b1c223afd8fbd5821ab3dea26a33b28212165288"}],"cyborg/policies/device_profiles.py":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"8a9035d9dd712543024b688da9fddaf2cf13833b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9f560f44_8ed2ef5a","updated":"2020-09-11 06:32:53.000000000","message":"This is a greate change, and it will be better to maintain, this is pleasing ^^","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"78e7812cabc29d94c7532c4a2b0bafc8024bde0a","unresolved":false,"context_lines":[{"line_number":24,"context_line":"# policies will be marked as deprecated device_profile policies."},{"line_number":25,"context_line":"# To ensure API works fine with both old policies and new policies, we set"},{"line_number":26,"context_line":"# ``cyborg.conf [oslo_policy] enforce_scope \u003d False`` by default. With this,"},{"line_number":27,"context_line":"# policy authorization check will pass those who comply with eithr new policy"},{"line_number":28,"context_line":"# rules or old policy rules by involking oslo_policy.policy.OrCheck"},{"line_number":29,"context_line":"# (REF:https://github.com/openstack/oslo.policy/blob/cab28649c689067970a51a2f9b329bdd6a0f0501/oslo_policy/policy.py#L726)"},{"line_number":30,"context_line":"# And Once we move to new defaults only world, we will set"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_8fb5ce34","line":27,"range":{"start_line":27,"start_character":61,"end_line":27,"end_character":66},"updated":"2020-09-11 02:41:32.000000000","message":"either","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"78e7812cabc29d94c7532c4a2b0bafc8024bde0a","unresolved":false,"context_lines":[{"line_number":25,"context_line":"# To ensure API works fine with both old policies and new policies, we set"},{"line_number":26,"context_line":"# ``cyborg.conf [oslo_policy] enforce_scope \u003d False`` by default. With this,"},{"line_number":27,"context_line":"# policy authorization check will pass those who comply with eithr new policy"},{"line_number":28,"context_line":"# rules or old policy rules by involking oslo_policy.policy.OrCheck"},{"line_number":29,"context_line":"# (REF:https://github.com/openstack/oslo.policy/blob/cab28649c689067970a51a2f9b329bdd6a0f0501/oslo_policy/policy.py#L726)"},{"line_number":30,"context_line":"# And Once we move to new defaults only world, we will set"},{"line_number":31,"context_line":"# ``cyborg.conf [oslo_policy] enforce_scope \u003d True`` by default, at which time"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_cf84e660","line":28,"range":{"start_line":28,"start_character":60,"end_line":28,"end_character":67},"updated":"2020-09-11 02:41:32.000000000","message":"OldCheck?","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"78e7812cabc29d94c7532c4a2b0bafc8024bde0a","unresolved":false,"context_lines":[{"line_number":25,"context_line":"# To ensure API works fine with both old policies and new policies, we set"},{"line_number":26,"context_line":"# ``cyborg.conf [oslo_policy] enforce_scope \u003d False`` by default. With this,"},{"line_number":27,"context_line":"# policy authorization check will pass those who comply with eithr new policy"},{"line_number":28,"context_line":"# rules or old policy rules by involking oslo_policy.policy.OrCheck"},{"line_number":29,"context_line":"# (REF:https://github.com/openstack/oslo.policy/blob/cab28649c689067970a51a2f9b329bdd6a0f0501/oslo_policy/policy.py#L726)"},{"line_number":30,"context_line":"# And Once we move to new defaults only world, we will set"},{"line_number":31,"context_line":"# ``cyborg.conf [oslo_policy] enforce_scope \u003d True`` by default, at which time"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_6fb03a41","line":28,"range":{"start_line":28,"start_character":31,"end_line":28,"end_character":40},"updated":"2020-09-11 02:41:32.000000000","message":"invoking","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"f49f3ae95ad65b0e24c0ee3310306ef6f42b8d04","unresolved":false,"context_lines":[{"line_number":25,"context_line":"# To ensure API works fine with both old policies and new policies, we set"},{"line_number":26,"context_line":"# ``cyborg.conf [oslo_policy] enforce_scope \u003d False`` by default. With this,"},{"line_number":27,"context_line":"# policy authorization check will pass those who comply with eithr new policy"},{"line_number":28,"context_line":"# rules or old policy rules by involking oslo_policy.policy.OrCheck"},{"line_number":29,"context_line":"# (REF:https://github.com/openstack/oslo.policy/blob/cab28649c689067970a51a2f9b329bdd6a0f0501/oslo_policy/policy.py#L726)"},{"line_number":30,"context_line":"# And Once we move to new defaults only world, we will set"},{"line_number":31,"context_line":"# ``cyborg.conf [oslo_policy] enforce_scope \u003d True`` by default, at which time"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_6b666d2b","line":28,"range":{"start_line":28,"start_character":60,"end_line":28,"end_character":67},"in_reply_to":"9f560f44_cf84e660","updated":"2020-09-11 05:44:31.000000000","message":"not OldCheck. it is Orcheck. https://github.com/openstack/oslo.policy/blob/master/oslo_policy/policy.py#L738","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"78e7812cabc29d94c7532c4a2b0bafc8024bde0a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"# policy authorization check will pass those who comply with eithr new policy"},{"line_number":28,"context_line":"# rules or old policy rules by involking oslo_policy.policy.OrCheck"},{"line_number":29,"context_line":"# (REF:https://github.com/openstack/oslo.policy/blob/cab28649c689067970a51a2f9b329bdd6a0f0501/oslo_policy/policy.py#L726)"},{"line_number":30,"context_line":"# And Once we move to new defaults only world, we will set"},{"line_number":31,"context_line":"# ``cyborg.conf [oslo_policy] enforce_scope \u003d True`` by default, at which time"},{"line_number":32,"context_line":"# we can totally remove these deprecated device_profile policies from code."},{"line_number":33,"context_line":"deprecated_get_all \u003d policy.DeprecatedRule("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_af87f260","line":30,"range":{"start_line":30,"start_character":6,"end_line":30,"end_character":10},"updated":"2020-09-11 02:41:32.000000000","message":"once","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"78e7812cabc29d94c7532c4a2b0bafc8024bde0a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"# policy authorization check will pass those who comply with eithr new policy"},{"line_number":28,"context_line":"# rules or old policy rules by involking oslo_policy.policy.OrCheck"},{"line_number":29,"context_line":"# (REF:https://github.com/openstack/oslo.policy/blob/cab28649c689067970a51a2f9b329bdd6a0f0501/oslo_policy/policy.py#L726)"},{"line_number":30,"context_line":"# And Once we move to new defaults only world, we will set"},{"line_number":31,"context_line":"# ``cyborg.conf [oslo_policy] enforce_scope \u003d True`` by default, at which time"},{"line_number":32,"context_line":"# we can totally remove these deprecated device_profile policies from code."},{"line_number":33,"context_line":"deprecated_get_all \u003d policy.DeprecatedRule("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_0f7b7e7a","line":30,"range":{"start_line":30,"start_character":40,"end_line":30,"end_character":45},"updated":"2020-09-11 02:41:32.000000000","message":"world?","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"8a9035d9dd712543024b688da9fddaf2cf13833b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"# rules or old policy rules by involking oslo_policy.policy.OrCheck"},{"line_number":29,"context_line":"# (REF:https://github.com/openstack/oslo.policy/blob/cab28649c689067970a51a2f9b329bdd6a0f0501/oslo_policy/policy.py#L726)"},{"line_number":30,"context_line":"# And Once we move to new defaults only world, we will set"},{"line_number":31,"context_line":"# ``cyborg.conf [oslo_policy] enforce_scope \u003d True`` by default, at which time"},{"line_number":32,"context_line":"# we can totally remove these deprecated device_profile policies from code."},{"line_number":33,"context_line":"deprecated_get_all \u003d policy.DeprecatedRule("},{"line_number":34,"context_line":"    name\u003d\u0027cyborg:device_profile:get_all\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_4ee3b734","line":31,"range":{"start_line":31,"start_character":2,"end_line":31,"end_character":64},"updated":"2020-09-11 06:32:53.000000000","message":"\"... by default\". We will introduce it, and will be use it by default, there is no span in between...","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"0e77b0ab5d6812b2ac845e6da3834a3ff3a94a3a","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                \u0027method\u0027: \u0027GET\u0027"},{"line_number":56,"context_line":"            }],"},{"line_number":57,"context_line":"        deprecated_rule\u003ddeprecated_get_all,"},{"line_number":58,"context_line":"        deprecated_reason\u003d(\u0027request admin_or_owmer role is too strict for\u0027"},{"line_number":59,"context_line":"                           \u0027listing device_profile\u0027),"},{"line_number":60,"context_line":"        deprecated_since\u003dversionutils.deprecated.WALLABY),"},{"line_number":61,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_cea7c7bb","line":58,"range":{"start_line":58,"start_character":73,"end_line":58,"end_character":74},"updated":"2020-09-11 07:11:19.000000000","message":"need to add a white space.","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"0eabd1e595c17aaae123a85476ab709bd1d7c7e2","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                \u0027method\u0027: \u0027GET\u0027"},{"line_number":56,"context_line":"            }],"},{"line_number":57,"context_line":"        deprecated_rule\u003ddeprecated_get_all,"},{"line_number":58,"context_line":"        deprecated_reason\u003d(\u0027request admin_or_owmer role is too strict for\u0027"},{"line_number":59,"context_line":"                           \u0027listing device_profile\u0027),"},{"line_number":60,"context_line":"        deprecated_since\u003dversionutils.deprecated.WALLABY),"},{"line_number":61,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_71793c91","line":58,"range":{"start_line":58,"start_character":73,"end_line":58,"end_character":74},"in_reply_to":"9f560f44_cea7c7bb","updated":"2020-09-11 07:50:55.000000000","message":"Done","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"0e77b0ab5d6812b2ac845e6da3834a3ff3a94a3a","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                \u0027method\u0027: \u0027GET\u0027"},{"line_number":69,"context_line":"            }],"},{"line_number":70,"context_line":"        deprecated_rule\u003ddeprecated_get_one,"},{"line_number":71,"context_line":"        deprecated_reason\u003d(\u0027request admin_or_owmer role is too strict for\u0027"},{"line_number":72,"context_line":"                           \u0027retrieving a device_profile\u0027),"},{"line_number":73,"context_line":"        deprecated_since\u003dversionutils.deprecated.WALLABY),"},{"line_number":74,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_0e953f40","line":71,"range":{"start_line":71,"start_character":73,"end_line":71,"end_character":74},"updated":"2020-09-11 07:11:19.000000000","message":"ditto","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"0e77b0ab5d6812b2ac845e6da3834a3ff3a94a3a","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                \u0027method\u0027: \u0027POST\u0027"},{"line_number":82,"context_line":"            }],"},{"line_number":83,"context_line":"        deprecated_rule\u003ddeprecated_create,"},{"line_number":84,"context_line":"        deprecated_reason\u003d(\u0027project_admin_or_owner is too permissive,\u0027"},{"line_number":85,"context_line":"                           \u0027introduce system_scoped admin for creation\u0027),"},{"line_number":86,"context_line":"        deprecated_since\u003dversionutils.deprecated.WALLABY),"},{"line_number":87,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_2eebe3a3","line":84,"range":{"start_line":84,"start_character":68,"end_line":84,"end_character":70},"updated":"2020-09-11 07:11:19.000000000","message":"ditto","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"0e77b0ab5d6812b2ac845e6da3834a3ff3a94a3a","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                \u0027method\u0027: \u0027DELETE\u0027},"},{"line_number":98,"context_line":"            ],"},{"line_number":99,"context_line":"        deprecated_rule\u003ddeprecated_delete,"},{"line_number":100,"context_line":"        deprecated_reason\u003d(\u0027project_admin_or_owner is too permissive,\u0027"},{"line_number":101,"context_line":"                           \u0027introduce system_scoped admin for deletion\u0027),"},{"line_number":102,"context_line":"        deprecated_since\u003dversionutils.deprecated.WALLABY),"},{"line_number":103,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_8e2b0fe9","line":100,"range":{"start_line":100,"start_character":68,"end_line":100,"end_character":70},"updated":"2020-09-11 07:11:19.000000000","message":"ditto","commit_id":"4a92acc916603858e909bb61df12d9750be18dff"}]}
