)]}'
{
  "commit": "a6d4ceaf57f3a86be8318b4e84111d71104c28f5",
  "tree": "9f87bcf384bdce3a138d068c5b3c9f07b0a52dfd",
  "parents": [
    "2473e5bdbadb30458af0030707c1c201c9393f17"
  ],
  "author": {
    "name": "Colleen Murphy",
    "email": "colleen.murphy@suse.com",
    "time": "Mon Dec 23 13:56:27 2019 -0800"
  },
  "committer": {
    "name": "Lance Bragstad",
    "email": "lbragstad@gmail.com",
    "time": "Thu Feb 11 16:02:54 2021 +0000"
  },
  "message": "Add RBAC tests\n\nThis change leverages the nine default personas available in tempest[1]\nto demonstrate a potential framework for testing default policies. An\nabstract base class is created that helps set up credentials and\noutlines every policy that needs to be tested, then nine subclasses are\ncreated to test every persona. Each test represents one policy rule, and\nsome tests make multiple requests in order to test the policy from\ndifferent approaches, for example, to check what happens if a different\ndomain is specified, or what happens if the resource does not exist.\n\nThe idea here is to be very verbose and explicit about what is being\ntested: every policy gets one test in the base class, and each persona\nis tested in a subclass. The layout should be easy to understand and\nsomeone reading the code should not be left guessing whether a case is\nmissing or if there is magic happening in the background that is causing\na false positive or false negative.\n\nThis is intended to replace the unittest protection tests currently\nin place.\n\n[1] https://review.opendev.org/686306 (this will require additional\ndevstack and keystone configuration to work properly in CI)\n\nDepends-on: https://review.opendev.org/686306\nDepends-on: https://review.opendev.org/699051\nDepends-on: https://review.opendev.org/699519\nDepends-on: https://review.opendev.org/700826\nDepends-on: https://review.opendev.org/743853\nDepends-on: https://review.opendev.org/744087\nDepends-on: https://review.opendev.org/744268\nDepends-on: https://review.opendev.org/731087\n\nChange-Id: Icb5317b9297230490bd783fe9b07c8db244c06f8\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "11a43a881ceba016b160b3b6d725e0661c3aba9b",
      "old_mode": 33188,
      "old_path": ".zuul.yaml",
      "new_id": "84b2fdd916688fb52106da6d842afa87e0d8a12c",
      "new_mode": 33188,
      "new_path": ".zuul.yaml"
    },
    {
      "type": "modify",
      "old_id": "25964a8c5b6eabf2f3114ac2070a4e332ce240be",
      "old_mode": 33188,
      "old_path": "keystone_tempest_plugin/config.py",
      "new_id": "2d4d189a6546cacf36b5125440bfb55fab27d182",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/config.py"
    },
    {
      "type": "modify",
      "old_id": "76f7a9c1dd56509819f92abe1b829a98b287df57",
      "old_mode": 33188,
      "old_path": "keystone_tempest_plugin/plugin.py",
      "new_id": "72db604d54f35bcd27d7663cf427a635020ef505",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/plugin.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d260b7b11688434efd6656cf2e98685996283e98",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/base.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "25767fc7492a7bc633bfc441815e067169118120",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_access_rule.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "13fe16a65def1d8e233bd1d77bf4136a59d1f5e7",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_application_credential.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b7dbb95fb9c7c2179962316de8a2f92290360a28",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_consumer.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5b1bee269d55f73ac42b23450a7de3bb60ebb6d8",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_credential.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "13f0b71d2c54a099f946eff7aa431638e9edbb5a",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_domain.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8f1fdbf62f01923078eb63da67d2376530a8d154",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_domain_config.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6c7d19b7b06302fd23017b46d1f7e0068e1814dc",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_ec2_credential.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "48dfb19b5760448c6f35c04069f1b723e304719d",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_endpoint.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6cca108b5f76cdb87fb600f836376cf6d794551e",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_endpoint_group.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e88b6795cfa8cac9024a80a4a9de834bc2e328c9",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_grant.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c3ce1d9e1e1c322f469c1e47d47345f0492e4d2c",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_group.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "819508ca86a45cbe4baeb67c5f3537840eaf1b5c",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_identity_provider.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "73765e433cd61f36bebbe82465fc22487ef719e6",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_implied_role.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d2efc6c2f4b48e406b9f4a498f01b47ec82c57e2",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_limit.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "00b2e6b1482a5c307db33157d4a2299879624f7c",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_mapping.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "53cdeb58a7e1d29c27e3e86306ae4a022cd17c3f",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_policy.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5c3f5149a4ec1cf46635a1b679b619006449a1b8",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_policy_association.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "81b64e6b212defb4c571bde3a2c5431fada7ae25",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_project.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "442ca9ed7ced8dd141edb4b6c54b69bf7f3cef7e",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_project_endpoint.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3e6c4a61f72e546776c7c0417dac5df3855c1de5",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_project_tag.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5f9d9a21d7e5ead1e91d2f9492786be781ea8ec6",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_protocol.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e58206a459c54c010515e34b3f58b02eb43518f8",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_region.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c18ed010d0c03122e14110a9ba8396d21c9b5db2",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_registered_limit.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a9815e84a179a9e437dcb022e33f219d26fb352b",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_role.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7b27294430613f2c7d509fcf99c5c0ef02da2c66",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_role_assignment.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a6a908342926ef714acfdf85b56c1dfd3e39d801",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_service.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6cf54b966e01d18fd12e02829abcb55fb7b1d5d8",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_service_provider.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e5d10ed499498d8073f8fe04ccdb11711af79c4c",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_token.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c30f9ebbaa42f1ffa461132aff029a53b4961f6d",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_trust.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7dcfdc727dd7eae5c1f098f16b3c797f6727ae4a",
      "new_mode": 33188,
      "new_path": "keystone_tempest_plugin/tests/rbac/v3/test_user.py"
    },
    {
      "type": "modify",
      "old_id": "8b4a0585a4b0d57dc1ea0b222b564e6c4d471e01",
      "old_mode": 33188,
      "old_path": "tox.ini",
      "new_id": "570c0299a10f97a93a04faaf0e6f1881d7a71564",
      "new_mode": 33188,
      "new_path": "tox.ini"
    }
  ]
}
