)]}'
{
  "commit": "673614435a63e13f44a7336d862670e6612236d4",
  "tree": "ba55d6571d8e0b1fabd56d130d734cfa1343f589",
  "parents": [
    "eef6207a5b623df7b0e7eaffbdd2e6e6f01c45cc"
  ],
  "author": {
    "name": "Vasyl Saienko",
    "email": "vsaienko@mirantis.com",
    "time": "Fri Apr 07 15:28:19 2023 +0000"
  },
  "committer": {
    "name": "rbubyr",
    "email": "rbubyr@mirantis.com",
    "time": "Fri Oct 03 15:04:47 2025 +0200"
  },
  "message": "Drop os-ken dependency\n\n* Switch to python-docker library to start containers\n* Switch to FRR image\n* Improve bgp output parsing by using json\n* Allow to run tests on multinode environment.\n* Allow to run tests from tesmest running in container.\n* Move base tests to ipv4 tests.\n\nRelated-Prod: PRODX-31417\nChange-Id: Ic78a3b5d092aa9a6fd8343a856ef188dafe70b49\n(cherry picked from commit 9ae406bbb842e93619fa44faa68eec1252633233)\n(cherry picked from commit e4bba98f2c5aee72a042f051091f48c35139882d)\n\nFollowup to Ic78a3b5d092aa9a6fd8343a856ef188dafe70b49\n\nlist Jinja2 as explicit requirement, it is imported in \u0027frr\u0027 code.\n\nSquash with Ic78a3b5d092aa9a6fd8343a856ef188dafe70b49 ASAP.\n\nChange-Id: If9d0e2a04d89f9e68bf0af0d5494017d108a2483\nRelated-Issue: PRODX-31417\n(cherry picked from commit 8e80cea21092f7bd4d76d129f227a75c0cade830)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "74f7c0379a50cda93bc6d1d09ee51bde291f30eb",
      "old_mode": 33188,
      "old_path": "neutron_tempest_plugin/config.py",
      "new_id": "89790552bd6174cfec55b0c214eaaa6c94a5d7fd",
      "new_mode": 33188,
      "new_path": "neutron_tempest_plugin/config.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "85059951a07b41632cfe852bcbe1d2b629de65b5",
      "new_mode": 33188,
      "new_path": "neutron_tempest_plugin/neutron_dynamic_routing/frr/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f2b96d8c6e60a92a664e9114904b498032dea076",
      "new_mode": 33188,
      "new_path": "neutron_tempest_plugin/neutron_dynamic_routing/frr/constants.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "27d8fab77d3c837244eab1cd68dd80db6b69616f",
      "new_mode": 33188,
      "new_path": "neutron_tempest_plugin/neutron_dynamic_routing/frr/templates/bgpd.conf"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "314e231d61fef9b196512f48353a4d60d26e73a7",
      "new_mode": 33188,
      "new_path": "neutron_tempest_plugin/neutron_dynamic_routing/frr/templates/daemons"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e0ab9cb6f3145aa4098ca352b6ed36c08dcddc31",
      "new_mode": 33188,
      "new_path": "neutron_tempest_plugin/neutron_dynamic_routing/frr/templates/vtysh.conf"
    },
    {
      "type": "modify",
      "old_id": "44990bdc90a2156cd2158d44f20913347aa99754",
      "old_mode": 33188,
      "old_path": "neutron_tempest_plugin/neutron_dynamic_routing/scenario/README",
      "new_id": "14957d3bce729e3d39d0d23f895c64db689c8a1e",
      "new_mode": 33188,
      "new_path": "neutron_tempest_plugin/neutron_dynamic_routing/scenario/README"
    },
    {
      "type": "modify",
      "old_id": "3f799bb63d4a59a446560ec8ce8b21cc94d837aa",
      "old_mode": 33188,
      "old_path": "neutron_tempest_plugin/neutron_dynamic_routing/scenario/base.py",
      "new_id": "fec623135177556033eb6d2fab61a88018e2be75",
      "new_mode": 33188,
      "new_path": "neutron_tempest_plugin/neutron_dynamic_routing/scenario/base.py"
    },
    {
      "type": "modify",
      "old_id": "643620f347c0e9a011c2c48af44295fd3ced23ab",
      "old_mode": 33188,
      "old_path": "neutron_tempest_plugin/neutron_dynamic_routing/scenario/base_test_proto.py",
      "new_id": "305ab25123a6d39e1e2cb6ea90f336f0b38334a4",
      "new_mode": 33188,
      "new_path": "neutron_tempest_plugin/neutron_dynamic_routing/scenario/base_test_proto.py"
    },
    {
      "type": "delete",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "neutron_tempest_plugin/neutron_dynamic_routing/scenario/basic/__init__.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "3719dd6c4728639be27b86963b043e19630777da",
      "old_mode": 33188,
      "old_path": "neutron_tempest_plugin/neutron_dynamic_routing/scenario/basic/base.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "142173406514ba2050d39aa79c4399496fbd08aa",
      "old_mode": 33188,
      "old_path": "neutron_tempest_plugin/neutron_dynamic_routing/scenario/basic/test_4byte_asn.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "90a68155893d9a88e429e15786bdcc9201f32067",
      "old_mode": 33188,
      "old_path": "neutron_tempest_plugin/neutron_dynamic_routing/scenario/basic/test_basic.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "57c90182456b2d060d14118fc1d9d0f9946b88f8",
      "old_mode": 33188,
      "old_path": "neutron_tempest_plugin/neutron_dynamic_routing/scenario/ipv4/test_ipv4.py",
      "new_id": "5a9deae3a996f55fe56c72fffbfe457aec28ccaf",
      "new_mode": 33188,
      "new_path": "neutron_tempest_plugin/neutron_dynamic_routing/scenario/ipv4/test_ipv4.py"
    },
    {
      "type": "modify",
      "old_id": "9bd4c8df637cb2ebbde88234db0e3c38da32edfe",
      "old_mode": 33188,
      "old_path": "neutron_tempest_plugin/neutron_dynamic_routing/scenario/ipv6/test_ipv6.py",
      "new_id": "d83fb7cb9120fe1ab89d2286dbd880d413144294",
      "new_mode": 33188,
      "new_path": "neutron_tempest_plugin/neutron_dynamic_routing/scenario/ipv6/test_ipv6.py"
    },
    {
      "type": "modify",
      "old_id": "957f186720b11f2019913c72c5da9484291ba64c",
      "old_mode": 33188,
      "old_path": "requirements.txt",
      "new_id": "7e9986962e3aaeea8b0abd7738637e1f39940c7b",
      "new_mode": 33188,
      "new_path": "requirements.txt"
    }
  ]
}
