)]}'
{
  "commit": "1801c0ceb203f456239260db224134a280adbc80",
  "tree": "e68c11da210b72ceb71ceefd9eab540d5fd8acfb",
  "parents": [
    "e3c5d0d469c2b360dd71d5c3fd43ebe44cd46551"
  ],
  "author": {
    "name": "Valeriy Ponomaryov",
    "email": "vponomaryov@mirantis.com",
    "time": "Tue Dec 01 17:30:16 2015 +0200"
  },
  "committer": {
    "name": "Valeriy Ponomaryov",
    "email": "vponomaryov@mirantis.com",
    "time": "Fri Jan 15 12:29:12 2016 +0200"
  },
  "message": "Implement export location metadata feature\n\nSome upcoming features require more than one export location and\npossibility to mark them with specific labels like fast/slow or\nrw/ro.\n\nSo, implement \u0027export locations metadata\u0027 feature:\n- It allows to set any key-value pairs for each export location.\n- These key-value pairs can be set only by share manager using\n  response from various share driver methods.\n- Example of update is implemented using Generic driver\n  \"create_instance\" method.\n- Metadata can be updated for any export location in any place\n  of share manager where db function \"share_export_locations_update\"\n  is called.\n- Keys from export location metadata table will be added to \u0027share\u0027 and\n  \u0027share instances\u0027 views as export location attributes.\n\nAlso:\n- Add new attr \u0027is_admin_only\u0027 for existing export locations model.\n  If set to True, then only admins will be able to see them. Unless\n  policy is changed.\n- Add APIs for reading export locations by share and share instance IDs.\n- Remove \u0027export_location\u0027 and \u0027export_locations\u0027 attrs\n  from \u0027share\u0027 and \u0027share instance\u0027 views.\n- Bump microversion as new APIs implemented.\n\nAPIImpact\n\nImplements bp export-location-metadata\n\nChange-Id: I36d1aa8d9302e097ffb08d239cf7a81101d2c1cb\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ddf11cd0988e0164dc5ba3e25bf2e86b5c6e3921",
      "old_mode": 33188,
      "old_path": "manila_tempest_tests/config.py",
      "new_id": "fb85fe37705575baed47e5e279583df13dedf62d",
      "new_mode": 33188,
      "new_path": "manila_tempest_tests/config.py"
    },
    {
      "type": "modify",
      "old_id": "806f108f97172bb89ddbfda28051e09377df2526",
      "old_mode": 33188,
      "old_path": "manila_tempest_tests/services/share/v2/json/shares_client.py",
      "new_id": "5fdb650547926c233d50f4bb6d640227cd8510f8",
      "new_mode": 33188,
      "new_path": "manila_tempest_tests/services/share/v2/json/shares_client.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9c759fc45e3e555e1b5909309e2676f899f4a261",
      "new_mode": 33188,
      "new_path": "manila_tempest_tests/tests/api/admin/test_export_locations.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9d53373ab5f42ce64f050622c26e69fd4af0aa76",
      "new_mode": 33188,
      "new_path": "manila_tempest_tests/tests/api/admin/test_export_locations_negative.py"
    },
    {
      "type": "modify",
      "old_id": "1202b9d4e2af2857f4d913e1bc25b387d6abee2b",
      "old_mode": 33188,
      "old_path": "manila_tempest_tests/tests/api/admin/test_share_instances.py",
      "new_id": "c5f96c8d5949a5adec366f3f8f12e0bb9102ee9d",
      "new_mode": 33188,
      "new_path": "manila_tempest_tests/tests/api/admin/test_share_instances.py"
    },
    {
      "type": "modify",
      "old_id": "b9763fb9808946cf79ba0b3afcb66c46512bf2b2",
      "old_mode": 33188,
      "old_path": "manila_tempest_tests/tests/api/base.py",
      "new_id": "3723d361376ea2e36f40c9ed972bbd91cce01052",
      "new_mode": 33188,
      "new_path": "manila_tempest_tests/tests/api/base.py"
    },
    {
      "type": "modify",
      "old_id": "1cf081e32279843ca550dbaa3bb852140b473b5c",
      "old_mode": 33188,
      "old_path": "manila_tempest_tests/tests/api/test_shares.py",
      "new_id": "977cfcc8cd9059a9eafc10dc22e7341702b0bbe8",
      "new_mode": 33188,
      "new_path": "manila_tempest_tests/tests/api/test_shares.py"
    },
    {
      "type": "modify",
      "old_id": "42a758962b0b76e474b8f59252538721878857e4",
      "old_mode": 33188,
      "old_path": "manila_tempest_tests/tests/api/test_shares_actions.py",
      "new_id": "f09cc6be01a8328b15e70c6d8e807491ff4e1a30",
      "new_mode": 33188,
      "new_path": "manila_tempest_tests/tests/api/test_shares_actions.py"
    },
    {
      "type": "modify",
      "old_id": "51e65ca8a87c9141bccd61fbbf08ae0017b490a9",
      "old_mode": 33188,
      "old_path": "manila_tempest_tests/tests/scenario/manager_share.py",
      "new_id": "3a942e014df2679abe46005410048302827eaadf",
      "new_mode": 33188,
      "new_path": "manila_tempest_tests/tests/scenario/manager_share.py"
    },
    {
      "type": "modify",
      "old_id": "7de8870a05322f74a25b85686d4b3eb9a2273ce7",
      "old_mode": 33188,
      "old_path": "manila_tempest_tests/tests/scenario/test_share_basic_ops.py",
      "new_id": "5373198bdb538afee89a27b5c90172416b4683ba",
      "new_mode": 33188,
      "new_path": "manila_tempest_tests/tests/scenario/test_share_basic_ops.py"
    }
  ]
}
