)]}'
{
  "commit": "521e5c1e4c4e14f3404bf3d83760b78da901f760",
  "tree": "972d07b06bf05e915794107c8b51df94b477d430",
  "parents": [
    "3cc966f093dbc8db2ca7c99cb52b74c0cfd51af4"
  ],
  "author": {
    "name": "Felipe Monteiro",
    "email": "felipe.monteiro@att.com",
    "time": "Wed Apr 05 22:59:57 2017 +0100"
  },
  "committer": {
    "name": "Felipe Monteiro",
    "email": "felipe.monteiro@att.com",
    "time": "Wed Apr 05 22:09:11 2017 +0000"
  },
  "message": "Fix role validation edge case bug in rbac_utils\n\nCurrently, a history of the order of switchToRbacRole calls is\nmaintained by class name in rbac_utils. This means that each\nuniquely named class has its own distinct history, allowing\nfor determination of whether proper role-switching is being\nperformed.\n\nHowever, sometimes class names are not unique across modules:\nfor example, both network and compute service folders have\na test called test_floating_ips_rbac, causing essentially\ncollisions to take place in the role-switching history dictionary.\nThis currently causes a false negative in role validation\nin the logs [0].\n\nThe solution to this edge case is straightforward: the key\nthat indexes into the history dictionary should be changed\nfrom class name to module path + class name. For example,\nthe key \"TestFloatingIpsRbac\" will be changed to:\n\n  - \"patrole_tempest_plugin.tests.api.compute...\" + class name\n  - \"patrole_tempest_plugin.tests.api.network...\" + class name\n\nThis also works for different versions of, say, test_users_rbac:\n\n  - \"patrole_tempest_plugin.tests.api.identity.v2...\" + class name\n  - \"patrole_tempest_plugin.tests.api.identity.v3...\" + class name\n\n[0] http://logs.openstack.org/82/448782/11/check/gate-tempest-dsvm-patrole-member-ubuntu-xenial-nv/bce54d8/console.html\n\nChange-Id: I4a1273e56a25dbc7fee950cf55f439f36cbf8e5c\nCloses-Bug: #1680262\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f61ccdfec208f3ec5bfbe6ebcd469ea969330141",
      "old_mode": 33188,
      "old_path": "patrole_tempest_plugin/rbac_utils.py",
      "new_id": "70fe0b7b43025daa3394b18fce27099e001f4a16",
      "new_mode": 33188,
      "new_path": "patrole_tempest_plugin/rbac_utils.py"
    }
  ]
}
