)]}'
{
  "commit": "9f6fce1bd4dcf235b8968aede57010bc5a7d2736",
  "tree": "d560272e109f23ddb65452eef1430654f6cc41a7",
  "parents": [
    "32da46943ec9c1a8dbfaf2cc41b6720b4f170dc3"
  ],
  "author": {
    "name": "melanie witt",
    "email": "melwittt@gmail.com",
    "time": "Wed Aug 28 18:15:15 2024 +0000"
  },
  "committer": {
    "name": "melanie witt",
    "email": "melwittt@gmail.com",
    "time": "Wed Aug 28 18:21:00 2024 +0000"
  },
  "message": "Fix AttributeError with \u0027SSHExecCommandFailed\u0027\n\nNoticed in a CI failure today, the SSHExecCommandFailed exception is\nincorrectly accessed from the tempest.exceptions module instead of the\ntempest.lib.exceptions module where it is actually located:\n\n  File \"/opt/stack/tempest/tempest/api/compute/base.py\", line 566, in\n    verify_metadata_from_api if not\n    test_utils.call_until_true(get_and_verify_metadata,\n  File \"/opt/stack/tempest/tempest/lib/common/utils/test_utils.py\",\n    line 117, in call_until_true if func(*args, **kwargs):\n  File \"/opt/stack/tempest/tempest/api/compute/base.py\", line 550, in\n    get_and_verify_metadata except exceptions.SSHExecCommandFailed:\n  AttributeError: module \u0027tempest.exceptions\u0027 has no attribute\n    \u0027SSHExecCommandFailed\u0027\n\nThis fixes the access.\n\nChange-Id: If8b0edf9df24b63e9c98218b1cdee1142efcd3ff\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1069e0f3955f727e87ba0e31fbeaf0b866622c52",
      "old_mode": 33188,
      "old_path": "tempest/api/compute/base.py",
      "new_id": "b974b522b9d28aecfdbb7a0312f4c87e371abec9",
      "new_mode": 33188,
      "new_path": "tempest/api/compute/base.py"
    }
  ]
}
