)]}'
{
  "commit": "d22ca2eb758e4b9d7a54d5af13b8ca864d80c34a",
  "tree": "0171439f176e476968719b12116aff952d3e5adf",
  "parents": [
    "41d066309e94dfe3bf534f340b03d675bbcc88fb"
  ],
  "author": {
    "name": "Assaf Muller",
    "email": "amuller@redhat.com",
    "time": "Tue Jan 19 11:47:14 2016 -0500"
  },
  "committer": {
    "name": "Assaf Muller",
    "email": "amuller@redhat.com",
    "time": "Fri Jan 29 11:31:27 2016 -0500"
  },
  "message": "Delete Tempest fork, import from tempest and tempest_lib\n\nA while ago we copied Tempest networking API tests in to the\nNeutron repo, and along came thousands of lines of code of Tempest\ntesting infrastructure (neutron.tests.tempest). For a while we\nperiodically refreshed our fork via:\ntools/copy_api_tests_from_tempest.sh\n\nI think it\u0027s time we move away from that model by eliminating\nthe fork. We do this by deleting unused code and importing the\nrest from tempest_lib. There\u0027s some Tempest code still not\nmoved from Tempest to tempest_lib in tempest.common. I think\nit\u0027s preferable to import that code than to copy it, and Tempest\ncores mostly agree. Manila and Ironic also do the same.\nTo be able to import from tempest I added it as a requirement:\nSince Tempest is not on PyPi, I had to get it from git. Only the api\ntests environment needs Tempest, so instead of adding it to\ntest-requirements, I added it specifically to the api and\napi-constraints venvs.\n\nneutron.tests.tempest.test and neutron.tests.tempest.common.*\nstill remain. These are tighly coupled with one another, and\nsadly since Neutron forked Tempest code, Tempest has made significant\nchanges to those files that also require changes to the test files.\nI aim to get rid of the Neutron fork of these files in a follow up\nchange.\n\nAlso fixed import grouping in test files so that it\u0027s std libs,\n3rd party libs, and then Neutron code.\n\n* Removed neutron.tests.tempest.config:\n  - We only added one option after the fork. I created a new group\n    called \u0027neutron_plugin_options\u0027 and moved the new option to that\n    group. This is in preperation for the Tempest plugin architecture,\n    where you\u0027re supposed to add new config options to a new group\n    and not to existing configuration groups. Note that this is\n    obviously a backward incompatible change, but it\u0027s to an option\n    added in the same cycle.\n* Removed neutron.tests.tempest.test and neutron.tests.tempest.common.\n  - This introduced an API change to the way we access Keystone,\n    which required mechanical changes to a few tests (create_tenant\n    calls need a different client now).\n  - The way Tempest manages primary, admin and alternative tenant\n    credentials was changed after we forked, which required another\n    mechanical change to a few tests.\n* Cut all of the Keystone clients we don\u0027t need. We only need\n  to create/delete tenants, the other clients were used in Tempest by\n  actual Keystone tests.\n* Changed neutron.tests.api.base.BaseNetworkTest:\n  - Re-implemented get_client_manager so that it returns the Neutron\n    clients manager and not the one in the Tempest repo.\n  - Updated it from the Tempest repo so that it uses the new way\n    to manage credentials (Since it now uses the Tempest test base\n    class and not our out of date forked copy).\n\nChange-Id: I4f9193dfe26f2d36985cb480a98709ec182a2f7b\n",
  "tree_diff": [
    {
      "type": "delete",
      "old_id": "a9fdb034b03d761c1f6bf0527225567aea5b4a18",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/auth.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/__init__.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "644073979011aa8c41ca06990a8ca373aa04abe4",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/accounts.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "392c9d06503d9b6c3d67c27d2c6f0d22a2e8b88b",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/commands.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "b90d09d099dd73ed09b82a23cea5b759eec23f88",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/cred_provider.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "9dfdff0d037cbf2575adf4e81de4a4a60c04227d",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/credentials.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "839088c654427e0a09a025c7544e07ff45849f7d",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/custom_matchers.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/generator/__init__.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "41ed48cc5cd675e718f574300e2bebaf2b5a16ce",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/generator/base_generator.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "44cd3058103756a12e29bec65ea6319048bcb210",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/generator/negative_generator.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "bc7014c40a8d884b56b009262855eb4b8e33489b",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/generator/valid_generator.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "3d8c8aaf8c34b82227ceefd87fb7554f844df703",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/glance_http.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "163ce8aded369f04e45adf4a0f20e9fa7b46263a",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/isolated_creds.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "9058516e8272dd22f7ede2cf85924ab2eba62dde",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/negative_rest_client.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "ed19e896eff5499245f4ffef9088e23fdbcd78ff",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/service_client.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "00febc6295c2b930aafe3938ab636e26fcb22ea2",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/ssh.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "d416857ae63b80b46b6b2cc5f4220318409f6b95",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/tempest_fixtures.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "04d898dfef0045e0c7821a85f48d8582a142096d",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/utils/__init__.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "d441778452ff0ebec0fe7d33c48b788558b4105f",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/utils/data_utils.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "43083f46c55efd9c1d15d29bcb4bfb2cd9387287",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/utils/file_utils.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "b97dd8627a97c02b82c2baaf772174ff09734772",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/utils/misc.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "caa9b37b141ff904f4c81df3fab35c9cb2654e45",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/common/waiters.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "06fd541735bcd94eb3d65c9ba2acf5b61e79936c",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/config.py",
      "new_id": "08b235a2a5fb778814087b6ac60304df8b136eac",
      "new_mode": 33188,
      "new_path": "neutron/tests/tempest/config.py"
    },
    {
      "type": "modify",
      "old_id": "db66bba20a7aa2426a6d253013c022b4f63e026b",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/exceptions.py",
      "new_id": "bdc3b8d45e51fd0c96e7af1fd375a104bb8c7c96",
      "new_mode": 33188,
      "new_path": "neutron/tests/tempest/exceptions.py"
    },
    {
      "type": "delete",
      "old_id": "969bf983db25ed6378833e9618c0260a7eda188e",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/manager.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "87d526637859ab5f3087825c5579a1fd0963aeff",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/services/botoclients.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/services/identity/__init__.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/services/identity/v2/__init__.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/services/identity/v2/json/__init__.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "46e8f8781ab758b8bc02f13629ba6c6db8ab21f3",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/services/identity/v2/json/identity_client.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/services/identity/v3/__init__.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/services/identity/v3/json/__init__.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "07e230ac49cd6a0e5127f7f9328af082636937eb",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/services/identity/v3/json/credentials_client.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "27ac3e54d039d0a076d39db7f19b0e3bd87b5f31",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/services/identity/v3/json/endpoints_client.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "a090acf9a03b71fba0ba7e5eca0ea25866416d71",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/services/identity/v3/json/identity_client.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "2d247afec84d9b2b7e79081db698710e138d25cf",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/services/identity/v3/json/policy_client.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "0effae881d586acc7bcacf2a8a6d819ea12fde75",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/services/identity/v3/json/region_client.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "75a5cf8150e616d184b6fd68d97a53011b57572a",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/services/identity/v3/json/service_client.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "caefc6ddd50b54e0635fe51144f7ad27d566d570",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/services/network/json/network_client.py",
      "new_id": "2cd1344ffd9073f14b59b9aaa3c6bc64c14c0df4",
      "new_mode": 33188,
      "new_path": "neutron/tests/tempest/services/network/json/network_client.py"
    },
    {
      "type": "delete",
      "old_id": "962dfc53c560de8862a5ad0c07eb694633559e30",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/services/network/resources.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "3abf826b2c3afbb640791e4404f07a8a931ae347",
      "old_mode": 33188,
      "old_path": "neutron/tests/tempest/test.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    }
  ]
}
