)]}'
{
  "commit": "3ab2c357e8510e3d1aa562c29d4b72e9f24e1477",
  "tree": "b96f1454fa489374dae0e5e90d937be2197a41cf",
  "parents": [
    "2bf66db706a1ddec90ec55a57b227e1d0494cfa8"
  ],
  "author": {
    "name": "Felipe Monteiro",
    "email": "felipe.monteiro@att.com",
    "time": "Wed Jul 05 22:25:34 2017 +0100"
  },
  "committer": {
    "name": "Felipe Monteiro",
    "email": "felipe.monteiro@att.com",
    "time": "Mon Jul 10 20:56:49 2017 +0000"
  },
  "message": "Dynamic policy file discovery\n\nPatrole should eventually support other services like Heat\nand Murano, not just the Big Tent services included in Tempest.\n\nPatrole then should be able to dynamically discover custom\npolicy files. While the solution this commit implements is\nnot perfect, it will allow more services\u0027 policy file to\nbe discovered by Patrole. The policy files will still\nhave to be located on the same host as Patrole.\n\nThis commit removes the service-specific policy path\nCONF options in favor of a new CONF option called\n``[rbac] custom_policy_files`` which is a ListOpt that\nincludes paths for each custom policy file. Each\npolicy path assumes that the service name is included in\nthe path. The paths should be ordered by precedence, with\nhigh-priority paths before low-priority paths. The first\npath that is found to contain the service\u0027s policy file\nwill be used.\n\nThis commit refactors unit tests and rbac_policy_parser\nas needed to work with the changes.\n\nChange-Id: Ia929b77223b54906888af6cd324f0cfa0fafda8f\nImplements blueprint: dynamic-policy-file-discovery\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "11808368a33cbdb248cd62088cb3ae0bb1310b1a",
      "old_mode": 33188,
      "old_path": "patrole_tempest_plugin/config.py",
      "new_id": "a6f30e7e8d5a1d06b12bc032635154531908c12a",
      "new_mode": 33188,
      "new_path": "patrole_tempest_plugin/config.py"
    },
    {
      "type": "modify",
      "old_id": "17a626c25c17e4f8defcb4b030db3a19751d726b",
      "old_mode": 33188,
      "old_path": "patrole_tempest_plugin/rbac_policy_parser.py",
      "new_id": "41871cf4d5281ca5a329bbf17e2108fa30d7483e",
      "new_mode": 33188,
      "new_path": "patrole_tempest_plugin/rbac_policy_parser.py"
    },
    {
      "type": "modify",
      "old_id": "09de6bfd50c57e48ff405635f972a1c034f867ab",
      "old_mode": 33188,
      "old_path": "patrole_tempest_plugin/tests/unit/test_rbac_policy_parser.py",
      "new_id": "e3a44293d1b4f00e49499132623468b1faeeaf64",
      "new_mode": 33188,
      "new_path": "patrole_tempest_plugin/tests/unit/test_rbac_policy_parser.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "59019cf63bbb4237d0634b0a67de391a7fe639b2",
      "new_mode": 33188,
      "new_path": "releasenotes/notes/dynamic-policy-file-discovery-104cbfc64b55d605.yaml"
    }
  ]
}
