all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fee6:8d4e
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 0ada5c25-0bbc-43be-b1dc-fcd64d47a392
        host_id: 5afd8fc909abddfe2ce3a956a91bbe56629648b7209fd0acfa541862
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fee6:8d4e
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.0.99
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.181
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fee6:8d4e
        region: null
        slot: null
  vars:
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job flake8 explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#32>'
      - '<Job flake8 explicit: None implied: None source: osism/openstack-simple-stress/.zuul.yaml@main#11>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 2bbfae06f1ea49b29f83e30ccf005f03
      build_refs:
      - branch: main
        change: '297'
        change_message: "chore(deps): update dependency idna to v3.15 [security]\n\nThis
          PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/)
          | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|
          [idna](https://redirect.github.com/kjd/idna) ([changelog](https://redirect.github.com/kjd/idna/blob/master/HISTORY.md))
          | `==3.11` \u2192 `==3.15` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/idna/3.15?slim=true)
          | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/idna/3.11/3.15?slim=true)
          |\n\n---\n\n### Internationalized Domain Names in Applications (IDNA): Specially
          crafted inputs to idna.encode() can bypass CVE-2024-3651 fix\n[CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409)
          / [GHSA-65pc-fj4g-8rjx](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)\n\n<details>\n<summary>More
          information</summary>\n\n#### Details\nThis is the same issue as CVE-2024-3651,
          however the original remediation in 2024 was not a complete fix. Payloads
          such as `\"\\u0660\" * N` or `\"\\u30fb\" * N + \"\\u6f22\"` utilize the
          `valid_contexto` function prior to length rejection, and for high values
          of `N` will take a long time to process.\n\n##### Impact\nA specially crafted
          argument to the `idna.encode()` function could consume significant resources.
          This may lead to a denial-of-service.\n\n##### Patches\nStarting in version
          3.14, the function rejects long inputs as soon as practicable prior to any
          further processing to minimize resource consumption. In version 3.15, this
          approach was extended to lesser used alternate functions (i.e. per-label
          conversions and codec support).\n\n##### Workarounds\nDomain names cannot
          exceed 253 characters in length, if this length limit is enforced prior
          to passing the domain to the `idna.encode()` function it should no longer
          consume significant resources. This is triggered by arbitrarily large inputs
          that would not occur in normal usage, but may be passed to the library assuming
          there is no preliminary input validation by the higher-level application.\n\n####
          Severity\n- CVSS Score: 6.9 / 10 (Medium)\n- Vector String: `CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N`\n\n####
          References\n- [https://github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx](https://redirect.github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx)\n-
          [https://nvd.nist.gov/vuln/detail/CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409)\n-
          [https://github.com/pypa/advisory-database/tree/main/vulns/idna/PYSEC-2026-215.yaml](https://redirect.github.com/pypa/advisory-database/tree/main/vulns/idna/PYSEC-2026-215.yaml)\n-
          [https://github.com/advisories/GHSA-65pc-fj4g-8rjx](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)\n\nThis
          data is provided by the [GitHub Advisory Database](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)
          ([CC-BY 4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).\n</details>\n\n---\n\n###
          Internationalized Domain Names in Applications (IDNA): Specially crafted
          inputs to idna.encode() can bypass CVE-2024-3651 fix\n[CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409)
          / [GHSA-65pc-fj4g-8rjx](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)
          / PYSEC-2026-215\n\n<details>\n<summary>More information</summary>\n\n####
          Details\nThis is the same issue as CVE-2024-3651, however the original remediation
          in 2024 was not a complete fix. Payloads such as `\"\\u0660\" * N` or `\"\\u30fb\"
          * N + \"\\u6f22\"` utilize the `valid_contexto` function prior to length
          rejection, and for high values of `N` will take a long time to process.\n\n#####
          Impact\nA specially crafted argument to the `idna.encode()` function could
          consume significant resources. This may lead to a denial-of-service.\n\n#####
          Patches\nStarting in version 3.14, the function rejects long inputs as soon
          as practicable prior to any further processing to minimize resource consumption.
          In version 3.15, this approach was extended to lesser used alternate functions
          (i.e. per-label conversions and codec support).\n\n##### Workarounds\nDomain
          names cannot exceed 253 characters in length, if this length limit is enforced
          prior to passing the domain to the `idna.encode()` function it should no
          longer consume significant resources. This is triggered by arbitrarily large
          inputs that would not occur in normal usage, but may be passed to the library
          assuming there is no preliminary input validation by the higher-level application.\n\n####
          Severity\n- CVSS Score: 6.9 / 10 (Medium)\n- Vector String: `CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N`\n\n####
          References\n- [https://github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx](https://redirect.github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx)\n-
          [https://nvd.nist.gov/vuln/detail/CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409)\n-
          [https://github.com/kjd/idna](https://redirect.github.com/kjd/idna)\n- [https://github.com/pypa/advisory-database/tree/main/vulns/idna/PYSEC-2026-215.yaml](https://redirect.github.com/pypa/advisory-database/tree/main/vulns/idna/PYSEC-2026-215.yaml)\n\nThis
          data is provided by [OSV](https://osv.dev/vulnerability/GHSA-65pc-fj4g-8rjx)
          and the [GitHub Advisory Database](https://redirect.github.com/github/advisory-database)
          ([CC-BY 4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).\n</details>\n\n---\n\n###
          [CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409) / [GHSA-65pc-fj4g-8rjx](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)
          / PYSEC-2026-215\n\n<details>\n<summary>More information</summary>\n\n####
          Details\nInternationalized Domain Names in Applications (IDNA) for Python
          provides support for Internationalized Domain Names in Applications (IDNA)
          and Unicode IDNA Compatibility Processing. In versions prior to 3.15, payloads
          such as `\"\\u0660\" * N` or `\"\\u30fb\" * N + \"\\u6f22\"` utilize the
          `valid_contexto` function prior to length rejection, and for high values
          of `N` will take a long time to process. This is the same issue as CVE-2024-3651,
          however the original remediation in 2024 was not a complete fix. A specially
          crafted argument to the `idna.encode()` function could consume significant
          resources. This may lead to a denial-of-service. Starting in version 3.14,
          the function rejects long inputs as soon as practicable prior to any further
          processing to minimize resource consumption. In version 3.15, this approach
          was extended to lesser used alternate functions (i.e. per-label conversions
          and codec support). A workaround is available. Domain names cannot exceed
          253 characters in length. If this length limit is enforced prior to passing
          the domain to the `idna.encode()` function, it should no longer consume
          significant resources. This is triggered by arbitrarily large inputs that
          would not occur in normal usage, but may be passed to the library assuming
          there is no preliminary input validation by the higher-level application.\n\n####
          Severity\n- CVSS Score: 5.3 / 10 (Medium)\n- Vector String: `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L`\n\n####
          References\n- [https://github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx](https://redirect.github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx)\n\nThis
          data is provided by [OSV](https://osv.dev/vulnerability/PYSEC-2026-215)
          and the [PyPI Advisory Database](https://redirect.github.com/pypa/advisory-database)
          ([CC-BY 4.0](https://redirect.github.com/pypa/advisory-database/blob/main/LICENSE)).\n</details>\n\n---\n\n###
          Release Notes\n\n<details>\n<summary>kjd/idna (idna)</summary>\n\n### [`v3.15`](https://redirect.github.com/kjd/idna/blob/HEAD/HISTORY.md#315-2026-05-12)\n\n[Compare
          Source](https://redirect.github.com/kjd/idna/compare/v3.14...v3.15)\n\n-
          Enforce DNS-length cap on individual labels early in `check_label`,\n  short-circuiting
          contextual-rule processing for oversized input\n  while staying compatible
          with UTS 46 usage.\n- Tidy core helpers: hoist bidi category sets to module-level\n
          \ frozensets (avoiding per-codepoint list construction), simplify\n  length
          checks, and reuse the shared `_unicode_dots_re` from\n  `idna.core` in the
          codec module.\n- Use `raise ... from err` for proper exception chaining
          and\n  switch internal string formatting to f-strings.\n- Allow `flit_core`
          4.x in the build backend.\n- Expand the ruff lint set (flake8-bugbear, flake8-simplify,\n
          \ pyupgrade, perflint) and apply the surfaced fixes; pin lint CI\n  to Python
          3.14.\n- Add Dependabot configuration for GitHub Actions.\n- Convert README
          and HISTORY from reStructuredText to Markdown.\n- Reference CVE-2026-45409
          for the 3.14 advisory in place of the\n  initial GHSA identifier.\n\nThanks
          to Felix Yan, Stan Ulbrych, and metsw24-max for\ncontributions to this release.\n\n###
          [`v3.14`](https://redirect.github.com/kjd/idna/blob/HEAD/HISTORY.md#314-2026-05-10)\n\n[Compare
          Source](https://redirect.github.com/kjd/idna/compare/v3.13...v3.14)\n\n-
          Removed opportunity to process long inputs into quadratic\n  time by rejecting
          oversize inputs up-front. Closes a bypass\n  of the CVE-2024-3651 mitigation.
          \\[CVE-2026-45409]\n\nThanks to Stan Ulbrych for reporting the issue.\n\n###
          [`v3.13`](https://redirect.github.com/kjd/idna/compare/v3.12...v3.13)\n\n[Compare
          Source](https://redirect.github.com/kjd/idna/compare/v3.12...v3.13)\n\n###
          [`v3.12`](https://redirect.github.com/kjd/idna/compare/v3.11...v3.12)\n\n[Compare
          Source](https://redirect.github.com/kjd/idna/compare/v3.11...v3.12)\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
          At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule
          defined)\n\n\U0001F6A6 **Automerge**: Disabled by config. Please merge this
          manually once you are satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes
          conflicted, or you tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**:
          Close this PR and you won't be reminded about this update again.\n\n---\n\n
          - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this
          box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).
          View the [repository job log](https://developer.mend.io/github/osism/openstack-simple-stress).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xODUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI2NS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
        change_url: https://github.com/osism/openstack-simple-stress/pull/297
        commit_id: 244f08e0a8195376a74210664cde5b94f7ad59ea
        patchset: 244f08e0a8195376a74210664cde5b94f7ad59ea
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/openstack-simple-stress
          name: osism/openstack-simple-stress
          short_name: openstack-simple-stress
        src_dir: src/github.com/osism/openstack-simple-stress
        topic: null
      buildset: e33014f0d73d460c847e1ea9e1e63509
      buildset_refs:
      - branch: main
        change: '297'
        change_message: "chore(deps): update dependency idna to v3.15 [security]\n\nThis
          PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/)
          | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|
          [idna](https://redirect.github.com/kjd/idna) ([changelog](https://redirect.github.com/kjd/idna/blob/master/HISTORY.md))
          | `==3.11` \u2192 `==3.15` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/idna/3.15?slim=true)
          | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/idna/3.11/3.15?slim=true)
          |\n\n---\n\n### Internationalized Domain Names in Applications (IDNA): Specially
          crafted inputs to idna.encode() can bypass CVE-2024-3651 fix\n[CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409)
          / [GHSA-65pc-fj4g-8rjx](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)\n\n<details>\n<summary>More
          information</summary>\n\n#### Details\nThis is the same issue as CVE-2024-3651,
          however the original remediation in 2024 was not a complete fix. Payloads
          such as `\"\\u0660\" * N` or `\"\\u30fb\" * N + \"\\u6f22\"` utilize the
          `valid_contexto` function prior to length rejection, and for high values
          of `N` will take a long time to process.\n\n##### Impact\nA specially crafted
          argument to the `idna.encode()` function could consume significant resources.
          This may lead to a denial-of-service.\n\n##### Patches\nStarting in version
          3.14, the function rejects long inputs as soon as practicable prior to any
          further processing to minimize resource consumption. In version 3.15, this
          approach was extended to lesser used alternate functions (i.e. per-label
          conversions and codec support).\n\n##### Workarounds\nDomain names cannot
          exceed 253 characters in length, if this length limit is enforced prior
          to passing the domain to the `idna.encode()` function it should no longer
          consume significant resources. This is triggered by arbitrarily large inputs
          that would not occur in normal usage, but may be passed to the library assuming
          there is no preliminary input validation by the higher-level application.\n\n####
          Severity\n- CVSS Score: 6.9 / 10 (Medium)\n- Vector String: `CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N`\n\n####
          References\n- [https://github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx](https://redirect.github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx)\n-
          [https://nvd.nist.gov/vuln/detail/CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409)\n-
          [https://github.com/pypa/advisory-database/tree/main/vulns/idna/PYSEC-2026-215.yaml](https://redirect.github.com/pypa/advisory-database/tree/main/vulns/idna/PYSEC-2026-215.yaml)\n-
          [https://github.com/advisories/GHSA-65pc-fj4g-8rjx](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)\n\nThis
          data is provided by the [GitHub Advisory Database](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)
          ([CC-BY 4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).\n</details>\n\n---\n\n###
          Internationalized Domain Names in Applications (IDNA): Specially crafted
          inputs to idna.encode() can bypass CVE-2024-3651 fix\n[CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409)
          / [GHSA-65pc-fj4g-8rjx](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)
          / PYSEC-2026-215\n\n<details>\n<summary>More information</summary>\n\n####
          Details\nThis is the same issue as CVE-2024-3651, however the original remediation
          in 2024 was not a complete fix. Payloads such as `\"\\u0660\" * N` or `\"\\u30fb\"
          * N + \"\\u6f22\"` utilize the `valid_contexto` function prior to length
          rejection, and for high values of `N` will take a long time to process.\n\n#####
          Impact\nA specially crafted argument to the `idna.encode()` function could
          consume significant resources. This may lead to a denial-of-service.\n\n#####
          Patches\nStarting in version 3.14, the function rejects long inputs as soon
          as practicable prior to any further processing to minimize resource consumption.
          In version 3.15, this approach was extended to lesser used alternate functions
          (i.e. per-label conversions and codec support).\n\n##### Workarounds\nDomain
          names cannot exceed 253 characters in length, if this length limit is enforced
          prior to passing the domain to the `idna.encode()` function it should no
          longer consume significant resources. This is triggered by arbitrarily large
          inputs that would not occur in normal usage, but may be passed to the library
          assuming there is no preliminary input validation by the higher-level application.\n\n####
          Severity\n- CVSS Score: 6.9 / 10 (Medium)\n- Vector String: `CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N`\n\n####
          References\n- [https://github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx](https://redirect.github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx)\n-
          [https://nvd.nist.gov/vuln/detail/CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409)\n-
          [https://github.com/kjd/idna](https://redirect.github.com/kjd/idna)\n- [https://github.com/pypa/advisory-database/tree/main/vulns/idna/PYSEC-2026-215.yaml](https://redirect.github.com/pypa/advisory-database/tree/main/vulns/idna/PYSEC-2026-215.yaml)\n\nThis
          data is provided by [OSV](https://osv.dev/vulnerability/GHSA-65pc-fj4g-8rjx)
          and the [GitHub Advisory Database](https://redirect.github.com/github/advisory-database)
          ([CC-BY 4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).\n</details>\n\n---\n\n###
          [CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409) / [GHSA-65pc-fj4g-8rjx](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)
          / PYSEC-2026-215\n\n<details>\n<summary>More information</summary>\n\n####
          Details\nInternationalized Domain Names in Applications (IDNA) for Python
          provides support for Internationalized Domain Names in Applications (IDNA)
          and Unicode IDNA Compatibility Processing. In versions prior to 3.15, payloads
          such as `\"\\u0660\" * N` or `\"\\u30fb\" * N + \"\\u6f22\"` utilize the
          `valid_contexto` function prior to length rejection, and for high values
          of `N` will take a long time to process. This is the same issue as CVE-2024-3651,
          however the original remediation in 2024 was not a complete fix. A specially
          crafted argument to the `idna.encode()` function could consume significant
          resources. This may lead to a denial-of-service. Starting in version 3.14,
          the function rejects long inputs as soon as practicable prior to any further
          processing to minimize resource consumption. In version 3.15, this approach
          was extended to lesser used alternate functions (i.e. per-label conversions
          and codec support). A workaround is available. Domain names cannot exceed
          253 characters in length. If this length limit is enforced prior to passing
          the domain to the `idna.encode()` function, it should no longer consume
          significant resources. This is triggered by arbitrarily large inputs that
          would not occur in normal usage, but may be passed to the library assuming
          there is no preliminary input validation by the higher-level application.\n\n####
          Severity\n- CVSS Score: 5.3 / 10 (Medium)\n- Vector String: `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L`\n\n####
          References\n- [https://github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx](https://redirect.github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx)\n\nThis
          data is provided by [OSV](https://osv.dev/vulnerability/PYSEC-2026-215)
          and the [PyPI Advisory Database](https://redirect.github.com/pypa/advisory-database)
          ([CC-BY 4.0](https://redirect.github.com/pypa/advisory-database/blob/main/LICENSE)).\n</details>\n\n---\n\n###
          Release Notes\n\n<details>\n<summary>kjd/idna (idna)</summary>\n\n### [`v3.15`](https://redirect.github.com/kjd/idna/blob/HEAD/HISTORY.md#315-2026-05-12)\n\n[Compare
          Source](https://redirect.github.com/kjd/idna/compare/v3.14...v3.15)\n\n-
          Enforce DNS-length cap on individual labels early in `check_label`,\n  short-circuiting
          contextual-rule processing for oversized input\n  while staying compatible
          with UTS 46 usage.\n- Tidy core helpers: hoist bidi category sets to module-level\n
          \ frozensets (avoiding per-codepoint list construction), simplify\n  length
          checks, and reuse the shared `_unicode_dots_re` from\n  `idna.core` in the
          codec module.\n- Use `raise ... from err` for proper exception chaining
          and\n  switch internal string formatting to f-strings.\n- Allow `flit_core`
          4.x in the build backend.\n- Expand the ruff lint set (flake8-bugbear, flake8-simplify,\n
          \ pyupgrade, perflint) and apply the surfaced fixes; pin lint CI\n  to Python
          3.14.\n- Add Dependabot configuration for GitHub Actions.\n- Convert README
          and HISTORY from reStructuredText to Markdown.\n- Reference CVE-2026-45409
          for the 3.14 advisory in place of the\n  initial GHSA identifier.\n\nThanks
          to Felix Yan, Stan Ulbrych, and metsw24-max for\ncontributions to this release.\n\n###
          [`v3.14`](https://redirect.github.com/kjd/idna/blob/HEAD/HISTORY.md#314-2026-05-10)\n\n[Compare
          Source](https://redirect.github.com/kjd/idna/compare/v3.13...v3.14)\n\n-
          Removed opportunity to process long inputs into quadratic\n  time by rejecting
          oversize inputs up-front. Closes a bypass\n  of the CVE-2024-3651 mitigation.
          \\[CVE-2026-45409]\n\nThanks to Stan Ulbrych for reporting the issue.\n\n###
          [`v3.13`](https://redirect.github.com/kjd/idna/compare/v3.12...v3.13)\n\n[Compare
          Source](https://redirect.github.com/kjd/idna/compare/v3.12...v3.13)\n\n###
          [`v3.12`](https://redirect.github.com/kjd/idna/compare/v3.11...v3.12)\n\n[Compare
          Source](https://redirect.github.com/kjd/idna/compare/v3.11...v3.12)\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
          At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule
          defined)\n\n\U0001F6A6 **Automerge**: Disabled by config. Please merge this
          manually once you are satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes
          conflicted, or you tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**:
          Close this PR and you won't be reminded about this update again.\n\n---\n\n
          - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this
          box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).
          View the [repository job log](https://developer.mend.io/github/osism/openstack-simple-stress).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xODUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI2NS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
        change_url: https://github.com/osism/openstack-simple-stress/pull/297
        commit_id: 244f08e0a8195376a74210664cde5b94f7ad59ea
        patchset: 244f08e0a8195376a74210664cde5b94f7ad59ea
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/openstack-simple-stress
          name: osism/openstack-simple-stress
          short_name: openstack-simple-stress
        src_dir: src/github.com/osism/openstack-simple-stress
        topic: null
      change: '297'
      change_message: "chore(deps): update dependency idna to v3.15 [security]\n\nThis
        PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/)
        | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|
        [idna](https://redirect.github.com/kjd/idna) ([changelog](https://redirect.github.com/kjd/idna/blob/master/HISTORY.md))
        | `==3.11` \u2192 `==3.15` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/idna/3.15?slim=true)
        | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/idna/3.11/3.15?slim=true)
        |\n\n---\n\n### Internationalized Domain Names in Applications (IDNA): Specially
        crafted inputs to idna.encode() can bypass CVE-2024-3651 fix\n[CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409)
        / [GHSA-65pc-fj4g-8rjx](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)\n\n<details>\n<summary>More
        information</summary>\n\n#### Details\nThis is the same issue as CVE-2024-3651,
        however the original remediation in 2024 was not a complete fix. Payloads
        such as `\"\\u0660\" * N` or `\"\\u30fb\" * N + \"\\u6f22\"` utilize the `valid_contexto`
        function prior to length rejection, and for high values of `N` will take a
        long time to process.\n\n##### Impact\nA specially crafted argument to the
        `idna.encode()` function could consume significant resources. This may lead
        to a denial-of-service.\n\n##### Patches\nStarting in version 3.14, the function
        rejects long inputs as soon as practicable prior to any further processing
        to minimize resource consumption. In version 3.15, this approach was extended
        to lesser used alternate functions (i.e. per-label conversions and codec support).\n\n#####
        Workarounds\nDomain names cannot exceed 253 characters in length, if this
        length limit is enforced prior to passing the domain to the `idna.encode()`
        function it should no longer consume significant resources. This is triggered
        by arbitrarily large inputs that would not occur in normal usage, but may
        be passed to the library assuming there is no preliminary input validation
        by the higher-level application.\n\n#### Severity\n- CVSS Score: 6.9 / 10
        (Medium)\n- Vector String: `CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N`\n\n####
        References\n- [https://github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx](https://redirect.github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx)\n-
        [https://nvd.nist.gov/vuln/detail/CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409)\n-
        [https://github.com/pypa/advisory-database/tree/main/vulns/idna/PYSEC-2026-215.yaml](https://redirect.github.com/pypa/advisory-database/tree/main/vulns/idna/PYSEC-2026-215.yaml)\n-
        [https://github.com/advisories/GHSA-65pc-fj4g-8rjx](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)\n\nThis
        data is provided by the [GitHub Advisory Database](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)
        ([CC-BY 4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).\n</details>\n\n---\n\n###
        Internationalized Domain Names in Applications (IDNA): Specially crafted inputs
        to idna.encode() can bypass CVE-2024-3651 fix\n[CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409)
        / [GHSA-65pc-fj4g-8rjx](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)
        / PYSEC-2026-215\n\n<details>\n<summary>More information</summary>\n\n####
        Details\nThis is the same issue as CVE-2024-3651, however the original remediation
        in 2024 was not a complete fix. Payloads such as `\"\\u0660\" * N` or `\"\\u30fb\"
        * N + \"\\u6f22\"` utilize the `valid_contexto` function prior to length rejection,
        and for high values of `N` will take a long time to process.\n\n##### Impact\nA
        specially crafted argument to the `idna.encode()` function could consume significant
        resources. This may lead to a denial-of-service.\n\n##### Patches\nStarting
        in version 3.14, the function rejects long inputs as soon as practicable prior
        to any further processing to minimize resource consumption. In version 3.15,
        this approach was extended to lesser used alternate functions (i.e. per-label
        conversions and codec support).\n\n##### Workarounds\nDomain names cannot
        exceed 253 characters in length, if this length limit is enforced prior to
        passing the domain to the `idna.encode()` function it should no longer consume
        significant resources. This is triggered by arbitrarily large inputs that
        would not occur in normal usage, but may be passed to the library assuming
        there is no preliminary input validation by the higher-level application.\n\n####
        Severity\n- CVSS Score: 6.9 / 10 (Medium)\n- Vector String: `CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N`\n\n####
        References\n- [https://github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx](https://redirect.github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx)\n-
        [https://nvd.nist.gov/vuln/detail/CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409)\n-
        [https://github.com/kjd/idna](https://redirect.github.com/kjd/idna)\n- [https://github.com/pypa/advisory-database/tree/main/vulns/idna/PYSEC-2026-215.yaml](https://redirect.github.com/pypa/advisory-database/tree/main/vulns/idna/PYSEC-2026-215.yaml)\n\nThis
        data is provided by [OSV](https://osv.dev/vulnerability/GHSA-65pc-fj4g-8rjx)
        and the [GitHub Advisory Database](https://redirect.github.com/github/advisory-database)
        ([CC-BY 4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).\n</details>\n\n---\n\n###
        [CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409) / [GHSA-65pc-fj4g-8rjx](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)
        / PYSEC-2026-215\n\n<details>\n<summary>More information</summary>\n\n####
        Details\nInternationalized Domain Names in Applications (IDNA) for Python
        provides support for Internationalized Domain Names in Applications (IDNA)
        and Unicode IDNA Compatibility Processing. In versions prior to 3.15, payloads
        such as `\"\\u0660\" * N` or `\"\\u30fb\" * N + \"\\u6f22\"` utilize the `valid_contexto`
        function prior to length rejection, and for high values of `N` will take a
        long time to process. This is the same issue as CVE-2024-3651, however the
        original remediation in 2024 was not a complete fix. A specially crafted argument
        to the `idna.encode()` function could consume significant resources. This
        may lead to a denial-of-service. Starting in version 3.14, the function rejects
        long inputs as soon as practicable prior to any further processing to minimize
        resource consumption. In version 3.15, this approach was extended to lesser
        used alternate functions (i.e. per-label conversions and codec support). A
        workaround is available. Domain names cannot exceed 253 characters in length.
        If this length limit is enforced prior to passing the domain to the `idna.encode()`
        function, it should no longer consume significant resources. This is triggered
        by arbitrarily large inputs that would not occur in normal usage, but may
        be passed to the library assuming there is no preliminary input validation
        by the higher-level application.\n\n#### Severity\n- CVSS Score: 5.3 / 10
        (Medium)\n- Vector String: `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L`\n\n####
        References\n- [https://github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx](https://redirect.github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx)\n\nThis
        data is provided by [OSV](https://osv.dev/vulnerability/PYSEC-2026-215) and
        the [PyPI Advisory Database](https://redirect.github.com/pypa/advisory-database)
        ([CC-BY 4.0](https://redirect.github.com/pypa/advisory-database/blob/main/LICENSE)).\n</details>\n\n---\n\n###
        Release Notes\n\n<details>\n<summary>kjd/idna (idna)</summary>\n\n### [`v3.15`](https://redirect.github.com/kjd/idna/blob/HEAD/HISTORY.md#315-2026-05-12)\n\n[Compare
        Source](https://redirect.github.com/kjd/idna/compare/v3.14...v3.15)\n\n- Enforce
        DNS-length cap on individual labels early in `check_label`,\n  short-circuiting
        contextual-rule processing for oversized input\n  while staying compatible
        with UTS 46 usage.\n- Tidy core helpers: hoist bidi category sets to module-level\n
        \ frozensets (avoiding per-codepoint list construction), simplify\n  length
        checks, and reuse the shared `_unicode_dots_re` from\n  `idna.core` in the
        codec module.\n- Use `raise ... from err` for proper exception chaining and\n
        \ switch internal string formatting to f-strings.\n- Allow `flit_core` 4.x
        in the build backend.\n- Expand the ruff lint set (flake8-bugbear, flake8-simplify,\n
        \ pyupgrade, perflint) and apply the surfaced fixes; pin lint CI\n  to Python
        3.14.\n- Add Dependabot configuration for GitHub Actions.\n- Convert README
        and HISTORY from reStructuredText to Markdown.\n- Reference CVE-2026-45409
        for the 3.14 advisory in place of the\n  initial GHSA identifier.\n\nThanks
        to Felix Yan, Stan Ulbrych, and metsw24-max for\ncontributions to this release.\n\n###
        [`v3.14`](https://redirect.github.com/kjd/idna/blob/HEAD/HISTORY.md#314-2026-05-10)\n\n[Compare
        Source](https://redirect.github.com/kjd/idna/compare/v3.13...v3.14)\n\n- Removed
        opportunity to process long inputs into quadratic\n  time by rejecting oversize
        inputs up-front. Closes a bypass\n  of the CVE-2024-3651 mitigation. \\[CVE-2026-45409]\n\nThanks
        to Stan Ulbrych for reporting the issue.\n\n### [`v3.13`](https://redirect.github.com/kjd/idna/compare/v3.12...v3.13)\n\n[Compare
        Source](https://redirect.github.com/kjd/idna/compare/v3.12...v3.13)\n\n###
        [`v3.12`](https://redirect.github.com/kjd/idna/compare/v3.11...v3.12)\n\n[Compare
        Source](https://redirect.github.com/kjd/idna/compare/v3.11...v3.12)\n\n</details>\n\n---\n\n###
        Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
        At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule
        defined)\n\n\U0001F6A6 **Automerge**: Disabled by config. Please merge this
        manually once you are satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes
        conflicted, or you tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**:
        Close this PR and you won't be reminded about this update again.\n\n---\n\n
        - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this
        box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).
        View the [repository job log](https://developer.mend.io/github/osism/openstack-simple-stress).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xODUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI2NS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
      change_url: https://github.com/osism/openstack-simple-stress/pull/297
      child_jobs: []
      commit_id: 244f08e0a8195376a74210664cde5b94f7ad59ea
      event_id: 75e58bb0-84b9-11f1-8a19-88892a7a3beb
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/2bbfae06f1ea49b29f83e30ccf005f03/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/2bbfae06f1ea49b29f83e30ccf005f03/work/logs
        result_data_file: /var/lib/zuul/builds/2bbfae06f1ea49b29f83e30ccf005f03/work/results.json
        src_root: /var/lib/zuul/builds/2bbfae06f1ea49b29f83e30ccf005f03/work/src
        work_root: /var/lib/zuul/builds/2bbfae06f1ea49b29f83e30ccf005f03/work
      include_vars: []
      items:
      - branch: main
        change: '297'
        change_message: "chore(deps): update dependency idna to v3.15 [security]\n\nThis
          PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/)
          | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|
          [idna](https://redirect.github.com/kjd/idna) ([changelog](https://redirect.github.com/kjd/idna/blob/master/HISTORY.md))
          | `==3.11` \u2192 `==3.15` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/idna/3.15?slim=true)
          | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/idna/3.11/3.15?slim=true)
          |\n\n---\n\n### Internationalized Domain Names in Applications (IDNA): Specially
          crafted inputs to idna.encode() can bypass CVE-2024-3651 fix\n[CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409)
          / [GHSA-65pc-fj4g-8rjx](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)\n\n<details>\n<summary>More
          information</summary>\n\n#### Details\nThis is the same issue as CVE-2024-3651,
          however the original remediation in 2024 was not a complete fix. Payloads
          such as `\"\\u0660\" * N` or `\"\\u30fb\" * N + \"\\u6f22\"` utilize the
          `valid_contexto` function prior to length rejection, and for high values
          of `N` will take a long time to process.\n\n##### Impact\nA specially crafted
          argument to the `idna.encode()` function could consume significant resources.
          This may lead to a denial-of-service.\n\n##### Patches\nStarting in version
          3.14, the function rejects long inputs as soon as practicable prior to any
          further processing to minimize resource consumption. In version 3.15, this
          approach was extended to lesser used alternate functions (i.e. per-label
          conversions and codec support).\n\n##### Workarounds\nDomain names cannot
          exceed 253 characters in length, if this length limit is enforced prior
          to passing the domain to the `idna.encode()` function it should no longer
          consume significant resources. This is triggered by arbitrarily large inputs
          that would not occur in normal usage, but may be passed to the library assuming
          there is no preliminary input validation by the higher-level application.\n\n####
          Severity\n- CVSS Score: 6.9 / 10 (Medium)\n- Vector String: `CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N`\n\n####
          References\n- [https://github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx](https://redirect.github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx)\n-
          [https://nvd.nist.gov/vuln/detail/CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409)\n-
          [https://github.com/pypa/advisory-database/tree/main/vulns/idna/PYSEC-2026-215.yaml](https://redirect.github.com/pypa/advisory-database/tree/main/vulns/idna/PYSEC-2026-215.yaml)\n-
          [https://github.com/advisories/GHSA-65pc-fj4g-8rjx](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)\n\nThis
          data is provided by the [GitHub Advisory Database](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)
          ([CC-BY 4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).\n</details>\n\n---\n\n###
          Internationalized Domain Names in Applications (IDNA): Specially crafted
          inputs to idna.encode() can bypass CVE-2024-3651 fix\n[CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409)
          / [GHSA-65pc-fj4g-8rjx](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)
          / PYSEC-2026-215\n\n<details>\n<summary>More information</summary>\n\n####
          Details\nThis is the same issue as CVE-2024-3651, however the original remediation
          in 2024 was not a complete fix. Payloads such as `\"\\u0660\" * N` or `\"\\u30fb\"
          * N + \"\\u6f22\"` utilize the `valid_contexto` function prior to length
          rejection, and for high values of `N` will take a long time to process.\n\n#####
          Impact\nA specially crafted argument to the `idna.encode()` function could
          consume significant resources. This may lead to a denial-of-service.\n\n#####
          Patches\nStarting in version 3.14, the function rejects long inputs as soon
          as practicable prior to any further processing to minimize resource consumption.
          In version 3.15, this approach was extended to lesser used alternate functions
          (i.e. per-label conversions and codec support).\n\n##### Workarounds\nDomain
          names cannot exceed 253 characters in length, if this length limit is enforced
          prior to passing the domain to the `idna.encode()` function it should no
          longer consume significant resources. This is triggered by arbitrarily large
          inputs that would not occur in normal usage, but may be passed to the library
          assuming there is no preliminary input validation by the higher-level application.\n\n####
          Severity\n- CVSS Score: 6.9 / 10 (Medium)\n- Vector String: `CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N`\n\n####
          References\n- [https://github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx](https://redirect.github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx)\n-
          [https://nvd.nist.gov/vuln/detail/CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409)\n-
          [https://github.com/kjd/idna](https://redirect.github.com/kjd/idna)\n- [https://github.com/pypa/advisory-database/tree/main/vulns/idna/PYSEC-2026-215.yaml](https://redirect.github.com/pypa/advisory-database/tree/main/vulns/idna/PYSEC-2026-215.yaml)\n\nThis
          data is provided by [OSV](https://osv.dev/vulnerability/GHSA-65pc-fj4g-8rjx)
          and the [GitHub Advisory Database](https://redirect.github.com/github/advisory-database)
          ([CC-BY 4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).\n</details>\n\n---\n\n###
          [CVE-2026-45409](https://nvd.nist.gov/vuln/detail/CVE-2026-45409) / [GHSA-65pc-fj4g-8rjx](https://redirect.github.com/advisories/GHSA-65pc-fj4g-8rjx)
          / PYSEC-2026-215\n\n<details>\n<summary>More information</summary>\n\n####
          Details\nInternationalized Domain Names in Applications (IDNA) for Python
          provides support for Internationalized Domain Names in Applications (IDNA)
          and Unicode IDNA Compatibility Processing. In versions prior to 3.15, payloads
          such as `\"\\u0660\" * N` or `\"\\u30fb\" * N + \"\\u6f22\"` utilize the
          `valid_contexto` function prior to length rejection, and for high values
          of `N` will take a long time to process. This is the same issue as CVE-2024-3651,
          however the original remediation in 2024 was not a complete fix. A specially
          crafted argument to the `idna.encode()` function could consume significant
          resources. This may lead to a denial-of-service. Starting in version 3.14,
          the function rejects long inputs as soon as practicable prior to any further
          processing to minimize resource consumption. In version 3.15, this approach
          was extended to lesser used alternate functions (i.e. per-label conversions
          and codec support). A workaround is available. Domain names cannot exceed
          253 characters in length. If this length limit is enforced prior to passing
          the domain to the `idna.encode()` function, it should no longer consume
          significant resources. This is triggered by arbitrarily large inputs that
          would not occur in normal usage, but may be passed to the library assuming
          there is no preliminary input validation by the higher-level application.\n\n####
          Severity\n- CVSS Score: 5.3 / 10 (Medium)\n- Vector String: `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L`\n\n####
          References\n- [https://github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx](https://redirect.github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx)\n\nThis
          data is provided by [OSV](https://osv.dev/vulnerability/PYSEC-2026-215)
          and the [PyPI Advisory Database](https://redirect.github.com/pypa/advisory-database)
          ([CC-BY 4.0](https://redirect.github.com/pypa/advisory-database/blob/main/LICENSE)).\n</details>\n\n---\n\n###
          Release Notes\n\n<details>\n<summary>kjd/idna (idna)</summary>\n\n### [`v3.15`](https://redirect.github.com/kjd/idna/blob/HEAD/HISTORY.md#315-2026-05-12)\n\n[Compare
          Source](https://redirect.github.com/kjd/idna/compare/v3.14...v3.15)\n\n-
          Enforce DNS-length cap on individual labels early in `check_label`,\n  short-circuiting
          contextual-rule processing for oversized input\n  while staying compatible
          with UTS 46 usage.\n- Tidy core helpers: hoist bidi category sets to module-level\n
          \ frozensets (avoiding per-codepoint list construction), simplify\n  length
          checks, and reuse the shared `_unicode_dots_re` from\n  `idna.core` in the
          codec module.\n- Use `raise ... from err` for proper exception chaining
          and\n  switch internal string formatting to f-strings.\n- Allow `flit_core`
          4.x in the build backend.\n- Expand the ruff lint set (flake8-bugbear, flake8-simplify,\n
          \ pyupgrade, perflint) and apply the surfaced fixes; pin lint CI\n  to Python
          3.14.\n- Add Dependabot configuration for GitHub Actions.\n- Convert README
          and HISTORY from reStructuredText to Markdown.\n- Reference CVE-2026-45409
          for the 3.14 advisory in place of the\n  initial GHSA identifier.\n\nThanks
          to Felix Yan, Stan Ulbrych, and metsw24-max for\ncontributions to this release.\n\n###
          [`v3.14`](https://redirect.github.com/kjd/idna/blob/HEAD/HISTORY.md#314-2026-05-10)\n\n[Compare
          Source](https://redirect.github.com/kjd/idna/compare/v3.13...v3.14)\n\n-
          Removed opportunity to process long inputs into quadratic\n  time by rejecting
          oversize inputs up-front. Closes a bypass\n  of the CVE-2024-3651 mitigation.
          \\[CVE-2026-45409]\n\nThanks to Stan Ulbrych for reporting the issue.\n\n###
          [`v3.13`](https://redirect.github.com/kjd/idna/compare/v3.12...v3.13)\n\n[Compare
          Source](https://redirect.github.com/kjd/idna/compare/v3.12...v3.13)\n\n###
          [`v3.12`](https://redirect.github.com/kjd/idna/compare/v3.11...v3.12)\n\n[Compare
          Source](https://redirect.github.com/kjd/idna/compare/v3.11...v3.12)\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
          At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule
          defined)\n\n\U0001F6A6 **Automerge**: Disabled by config. Please merge this
          manually once you are satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes
          conflicted, or you tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**:
          Close this PR and you won't be reminded about this update again.\n\n---\n\n
          - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this
          box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).
          View the [repository job log](https://developer.mend.io/github/osism/openstack-simple-stress).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xODUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI2NS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
        change_url: https://github.com/osism/openstack-simple-stress/pull/297
        commit_id: 244f08e0a8195376a74210664cde5b94f7ad59ea
        patchset: 244f08e0a8195376a74210664cde5b94f7ad59ea
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/openstack-simple-stress
          name: osism/openstack-simple-stress
          short_name: openstack-simple-stress
          src_dir: src/github.com/osism/openstack-simple-stress
        topic: null
      job: flake8
      jobtags: []
      max_attempts: 3
      message: Y2hvcmUoZGVwcyk6IHVwZGF0ZSBkZXBlbmRlbmN5IGlkbmEgdG8gdjMuMTUgW3NlY3VyaXR5XQoKVGhpcyBQUiBjb250YWlucyB0aGUgZm9sbG93aW5nIHVwZGF0ZXM6Cgp8IFBhY2thZ2UgfCBDaGFuZ2UgfCBbQWdlXShodHRwczovL2RvY3MucmVub3ZhdGVib3QuY29tL21lcmdlLWNvbmZpZGVuY2UvKSB8IFtDb25maWRlbmNlXShodHRwczovL2RvY3MucmVub3ZhdGVib3QuY29tL21lcmdlLWNvbmZpZGVuY2UvKSB8CnwtLS18LS0tfC0tLXwtLS18CnwgW2lkbmFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ramQvaWRuYSkgKFtjaGFuZ2Vsb2ddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ramQvaWRuYS9ibG9iL21hc3Rlci9ISVNUT1JZLm1kKSkgfCBgPT0zLjExYCDihpIgYD09My4xNWAgfCAhW2FnZV0oaHR0cHM6Ly9kZXZlbG9wZXIubWVuZC5pby9hcGkvbWMvYmFkZ2VzL2FnZS9weXBpL2lkbmEvMy4xNT9zbGltPXRydWUpIHwgIVtjb25maWRlbmNlXShodHRwczovL2RldmVsb3Blci5tZW5kLmlvL2FwaS9tYy9iYWRnZXMvY29uZmlkZW5jZS9weXBpL2lkbmEvMy4xMS8zLjE1P3NsaW09dHJ1ZSkgfAoKLS0tCgojIyMgSW50ZXJuYXRpb25hbGl6ZWQgRG9tYWluIE5hbWVzIGluIEFwcGxpY2F0aW9ucyAoSUROQSk6IFNwZWNpYWxseSBjcmFmdGVkIGlucHV0cyB0byBpZG5hLmVuY29kZSgpIGNhbiBieXBhc3MgQ1ZFLTIwMjQtMzY1MSBmaXgKW0NWRS0yMDI2LTQ1NDA5XShodHRwczovL252ZC5uaXN0Lmdvdi92dWxuL2RldGFpbC9DVkUtMjAyNi00NTQwOSkgLyBbR0hTQS02NXBjLWZqNGctOHJqeF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Fkdmlzb3JpZXMvR0hTQS02NXBjLWZqNGctOHJqeCkKCjxkZXRhaWxzPgo8c3VtbWFyeT5Nb3JlIGluZm9ybWF0aW9uPC9zdW1tYXJ5PgoKIyMjIyBEZXRhaWxzClRoaXMgaXMgdGhlIHNhbWUgaXNzdWUgYXMgQ1ZFLTIwMjQtMzY1MSwgaG93ZXZlciB0aGUgb3JpZ2luYWwgcmVtZWRpYXRpb24gaW4gMjAyNCB3YXMgbm90IGEgY29tcGxldGUgZml4LiBQYXlsb2FkcyBzdWNoIGFzIGAiXHUwNjYwIiAqIE5gIG9yIGAiXHUzMGZiIiAqIE4gKyAiXHU2ZjIyImAgdXRpbGl6ZSB0aGUgYHZhbGlkX2NvbnRleHRvYCBmdW5jdGlvbiBwcmlvciB0byBsZW5ndGggcmVqZWN0aW9uLCBhbmQgZm9yIGhpZ2ggdmFsdWVzIG9mIGBOYCB3aWxsIHRha2UgYSBsb25nIHRpbWUgdG8gcHJvY2Vzcy4KCiMjIyMjIEltcGFjdApBIHNwZWNpYWxseSBjcmFmdGVkIGFyZ3VtZW50IHRvIHRoZSBgaWRuYS5lbmNvZGUoKWAgZnVuY3Rpb24gY291bGQgY29uc3VtZSBzaWduaWZpY2FudCByZXNvdXJjZXMuIFRoaXMgbWF5IGxlYWQgdG8gYSBkZW5pYWwtb2Ytc2VydmljZS4KCiMjIyMjIFBhdGNoZXMKU3RhcnRpbmcgaW4gdmVyc2lvbiAzLjE0LCB0aGUgZnVuY3Rpb24gcmVqZWN0cyBsb25nIGlucHV0cyBhcyBzb29uIGFzIHByYWN0aWNhYmxlIHByaW9yIHRvIGFueSBmdXJ0aGVyIHByb2Nlc3NpbmcgdG8gbWluaW1pemUgcmVzb3VyY2UgY29uc3VtcHRpb24uIEluIHZlcnNpb24gMy4xNSwgdGhpcyBhcHByb2FjaCB3YXMgZXh0ZW5kZWQgdG8gbGVzc2VyIHVzZWQgYWx0ZXJuYXRlIGZ1bmN0aW9ucyAoaS5lLiBwZXItbGFiZWwgY29udmVyc2lvbnMgYW5kIGNvZGVjIHN1cHBvcnQpLgoKIyMjIyMgV29ya2Fyb3VuZHMKRG9tYWluIG5hbWVzIGNhbm5vdCBleGNlZWQgMjUzIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLCBpZiB0aGlzIGxlbmd0aCBsaW1pdCBpcyBlbmZvcmNlZCBwcmlvciB0byBwYXNzaW5nIHRoZSBkb21haW4gdG8gdGhlIGBpZG5hLmVuY29kZSgpYCBmdW5jdGlvbiBpdCBzaG91bGQgbm8gbG9uZ2VyIGNvbnN1bWUgc2lnbmlmaWNhbnQgcmVzb3VyY2VzLiBUaGlzIGlzIHRyaWdnZXJlZCBieSBhcmJpdHJhcmlseSBsYXJnZSBpbnB1dHMgdGhhdCB3b3VsZCBub3Qgb2NjdXIgaW4gbm9ybWFsIHVzYWdlLCBidXQgbWF5IGJlIHBhc3NlZCB0byB0aGUgbGlicmFyeSBhc3N1bWluZyB0aGVyZSBpcyBubyBwcmVsaW1pbmFyeSBpbnB1dCB2YWxpZGF0aW9uIGJ5IHRoZSBoaWdoZXItbGV2ZWwgYXBwbGljYXRpb24uCgojIyMjIFNldmVyaXR5Ci0gQ1ZTUyBTY29yZTogNi45IC8gMTAgKE1lZGl1bSkKLSBWZWN0b3IgU3RyaW5nOiBgQ1ZTUzo0LjAvQVY6Ti9BQzpML0FUOk4vUFI6Ti9VSTpOL1ZDOk4vVkk6Ti9WQTpML1NDOk4vU0k6Ti9TQTpOYAoKIyMjIyBSZWZlcmVuY2VzCi0gW2h0dHBzOi8vZ2l0aHViLmNvbS9ramQvaWRuYS9zZWN1cml0eS9hZHZpc29yaWVzL0dIU0EtNjVwYy1majRnLThyanhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ramQvaWRuYS9zZWN1cml0eS9hZHZpc29yaWVzL0dIU0EtNjVwYy1majRnLThyangpCi0gW2h0dHBzOi8vbnZkLm5pc3QuZ292L3Z1bG4vZGV0YWlsL0NWRS0yMDI2LTQ1NDA5XShodHRwczovL252ZC5uaXN0Lmdvdi92dWxuL2RldGFpbC9DVkUtMjAyNi00NTQwOSkKLSBbaHR0cHM6Ly9naXRodWIuY29tL3B5cGEvYWR2aXNvcnktZGF0YWJhc2UvdHJlZS9tYWluL3Z1bG5zL2lkbmEvUFlTRUMtMjAyNi0yMTUueWFtbF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvYWR2aXNvcnktZGF0YWJhc2UvdHJlZS9tYWluL3Z1bG5zL2lkbmEvUFlTRUMtMjAyNi0yMTUueWFtbCkKLSBbaHR0cHM6Ly9naXRodWIuY29tL2Fkdmlzb3JpZXMvR0hTQS02NXBjLWZqNGctOHJqeF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Fkdmlzb3JpZXMvR0hTQS02NXBjLWZqNGctOHJqeCkKClRoaXMgZGF0YSBpcyBwcm92aWRlZCBieSB0aGUgW0dpdEh1YiBBZHZpc29yeSBEYXRhYmFzZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Fkdmlzb3JpZXMvR0hTQS02NXBjLWZqNGctOHJqeCkgKFtDQy1CWSA0LjBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9naXRodWIvYWR2aXNvcnktZGF0YWJhc2UvYmxvYi9tYWluL0xJQ0VOU0UubWQpKS4KPC9kZXRhaWxzPgoKLS0tCgojIyMgSW50ZXJuYXRpb25hbGl6ZWQgRG9tYWluIE5hbWVzIGluIEFwcGxpY2F0aW9ucyAoSUROQSk6IFNwZWNpYWxseSBjcmFmdGVkIGlucHV0cyB0byBpZG5hLmVuY29kZSgpIGNhbiBieXBhc3MgQ1ZFLTIwMjQtMzY1MSBmaXgKW0NWRS0yMDI2LTQ1NDA5XShodHRwczovL252ZC5uaXN0Lmdvdi92dWxuL2RldGFpbC9DVkUtMjAyNi00NTQwOSkgLyBbR0hTQS02NXBjLWZqNGctOHJqeF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Fkdmlzb3JpZXMvR0hTQS02NXBjLWZqNGctOHJqeCkgLyBQWVNFQy0yMDI2LTIxNQoKPGRldGFpbHM+CjxzdW1tYXJ5Pk1vcmUgaW5mb3JtYXRpb248L3N1bW1hcnk+CgojIyMjIERldGFpbHMKVGhpcyBpcyB0aGUgc2FtZSBpc3N1ZSBhcyBDVkUtMjAyNC0zNjUxLCBob3dldmVyIHRoZSBvcmlnaW5hbCByZW1lZGlhdGlvbiBpbiAyMDI0IHdhcyBub3QgYSBjb21wbGV0ZSBmaXguIFBheWxvYWRzIHN1Y2ggYXMgYCJcdTA2NjAiICogTmAgb3IgYCJcdTMwZmIiICogTiArICJcdTZmMjIiYCB1dGlsaXplIHRoZSBgdmFsaWRfY29udGV4dG9gIGZ1bmN0aW9uIHByaW9yIHRvIGxlbmd0aCByZWplY3Rpb24sIGFuZCBmb3IgaGlnaCB2YWx1ZXMgb2YgYE5gIHdpbGwgdGFrZSBhIGxvbmcgdGltZSB0byBwcm9jZXNzLgoKIyMjIyMgSW1wYWN0CkEgc3BlY2lhbGx5IGNyYWZ0ZWQgYXJndW1lbnQgdG8gdGhlIGBpZG5hLmVuY29kZSgpYCBmdW5jdGlvbiBjb3VsZCBjb25zdW1lIHNpZ25pZmljYW50IHJlc291cmNlcy4gVGhpcyBtYXkgbGVhZCB0byBhIGRlbmlhbC1vZi1zZXJ2aWNlLgoKIyMjIyMgUGF0Y2hlcwpTdGFydGluZyBpbiB2ZXJzaW9uIDMuMTQsIHRoZSBmdW5jdGlvbiByZWplY3RzIGxvbmcgaW5wdXRzIGFzIHNvb24gYXMgcHJhY3RpY2FibGUgcHJpb3IgdG8gYW55IGZ1cnRoZXIgcHJvY2Vzc2luZyB0byBtaW5pbWl6ZSByZXNvdXJjZSBjb25zdW1wdGlvbi4gSW4gdmVyc2lvbiAzLjE1LCB0aGlzIGFwcHJvYWNoIHdhcyBleHRlbmRlZCB0byBsZXNzZXIgdXNlZCBhbHRlcm5hdGUgZnVuY3Rpb25zIChpLmUuIHBlci1sYWJlbCBjb252ZXJzaW9ucyBhbmQgY29kZWMgc3VwcG9ydCkuCgojIyMjIyBXb3JrYXJvdW5kcwpEb21haW4gbmFtZXMgY2Fubm90IGV4Y2VlZCAyNTMgY2hhcmFjdGVycyBpbiBsZW5ndGgsIGlmIHRoaXMgbGVuZ3RoIGxpbWl0IGlzIGVuZm9yY2VkIHByaW9yIHRvIHBhc3NpbmcgdGhlIGRvbWFpbiB0byB0aGUgYGlkbmEuZW5jb2RlKClgIGZ1bmN0aW9uIGl0IHNob3VsZCBubyBsb25nZXIgY29uc3VtZSBzaWduaWZpY2FudCByZXNvdXJjZXMuIFRoaXMgaXMgdHJpZ2dlcmVkIGJ5IGFyYml0cmFyaWx5IGxhcmdlIGlucHV0cyB0aGF0IHdvdWxkIG5vdCBvY2N1ciBpbiBub3JtYWwgdXNhZ2UsIGJ1dCBtYXkgYmUgcGFzc2VkIHRvIHRoZSBsaWJyYXJ5IGFzc3VtaW5nIHRoZXJlIGlzIG5vIHByZWxpbWluYXJ5IGlucHV0IHZhbGlkYXRpb24gYnkgdGhlIGhpZ2hlci1sZXZlbCBhcHBsaWNhdGlvbi4KCiMjIyMgU2V2ZXJpdHkKLSBDVlNTIFNjb3JlOiA2LjkgLyAxMCAoTWVkaXVtKQotIFZlY3RvciBTdHJpbmc6IGBDVlNTOjQuMC9BVjpOL0FDOkwvQVQ6Ti9QUjpOL1VJOk4vVkM6Ti9WSTpOL1ZBOkwvU0M6Ti9TSTpOL1NBOk5gCgojIyMjIFJlZmVyZW5jZXMKLSBbaHR0cHM6Ly9naXRodWIuY29tL2tqZC9pZG5hL3NlY3VyaXR5L2Fkdmlzb3JpZXMvR0hTQS02NXBjLWZqNGctOHJqeF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2tqZC9pZG5hL3NlY3VyaXR5L2Fkdmlzb3JpZXMvR0hTQS02NXBjLWZqNGctOHJqeCkKLSBbaHR0cHM6Ly9udmQubmlzdC5nb3YvdnVsbi9kZXRhaWwvQ1ZFLTIwMjYtNDU0MDldKGh0dHBzOi8vbnZkLm5pc3QuZ292L3Z1bG4vZGV0YWlsL0NWRS0yMDI2LTQ1NDA5KQotIFtodHRwczovL2dpdGh1Yi5jb20va2pkL2lkbmFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ramQvaWRuYSkKLSBbaHR0cHM6Ly9naXRodWIuY29tL3B5cGEvYWR2aXNvcnktZGF0YWJhc2UvdHJlZS9tYWluL3Z1bG5zL2lkbmEvUFlTRUMtMjAyNi0yMTUueWFtbF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvYWR2aXNvcnktZGF0YWJhc2UvdHJlZS9tYWluL3Z1bG5zL2lkbmEvUFlTRUMtMjAyNi0yMTUueWFtbCkKClRoaXMgZGF0YSBpcyBwcm92aWRlZCBieSBbT1NWXShodHRwczovL29zdi5kZXYvdnVsbmVyYWJpbGl0eS9HSFNBLTY1cGMtZmo0Zy04cmp4KSBhbmQgdGhlIFtHaXRIdWIgQWR2aXNvcnkgRGF0YWJhc2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9naXRodWIvYWR2aXNvcnktZGF0YWJhc2UpIChbQ0MtQlkgNC4wXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ2l0aHViL2Fkdmlzb3J5LWRhdGFiYXNlL2Jsb2IvbWFpbi9MSUNFTlNFLm1kKSkuCjwvZGV0YWlscz4KCi0tLQoKIyMjIFtDVkUtMjAyNi00NTQwOV0oaHR0cHM6Ly9udmQubmlzdC5nb3YvdnVsbi9kZXRhaWwvQ1ZFLTIwMjYtNDU0MDkpIC8gW0dIU0EtNjVwYy1majRnLThyanhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hZHZpc29yaWVzL0dIU0EtNjVwYy1majRnLThyangpIC8gUFlTRUMtMjAyNi0yMTUKCjxkZXRhaWxzPgo8c3VtbWFyeT5Nb3JlIGluZm9ybWF0aW9uPC9zdW1tYXJ5PgoKIyMjIyBEZXRhaWxzCkludGVybmF0aW9uYWxpemVkIERvbWFpbiBOYW1lcyBpbiBBcHBsaWNhdGlvbnMgKElETkEpIGZvciBQeXRob24gcHJvdmlkZXMgc3VwcG9ydCBmb3IgSW50ZXJuYXRpb25hbGl6ZWQgRG9tYWluIE5hbWVzIGluIEFwcGxpY2F0aW9ucyAoSUROQSkgYW5kIFVuaWNvZGUgSUROQSBDb21wYXRpYmlsaXR5IFByb2Nlc3NpbmcuIEluIHZlcnNpb25zIHByaW9yIHRvIDMuMTUsIHBheWxvYWRzIHN1Y2ggYXMgYCJcdTA2NjAiICogTmAgb3IgYCJcdTMwZmIiICogTiArICJcdTZmMjIiYCB1dGlsaXplIHRoZSBgdmFsaWRfY29udGV4dG9gIGZ1bmN0aW9uIHByaW9yIHRvIGxlbmd0aCByZWplY3Rpb24sIGFuZCBmb3IgaGlnaCB2YWx1ZXMgb2YgYE5gIHdpbGwgdGFrZSBhIGxvbmcgdGltZSB0byBwcm9jZXNzLiBUaGlzIGlzIHRoZSBzYW1lIGlzc3VlIGFzIENWRS0yMDI0LTM2NTEsIGhvd2V2ZXIgdGhlIG9yaWdpbmFsIHJlbWVkaWF0aW9uIGluIDIwMjQgd2FzIG5vdCBhIGNvbXBsZXRlIGZpeC4gQSBzcGVjaWFsbHkgY3JhZnRlZCBhcmd1bWVudCB0byB0aGUgYGlkbmEuZW5jb2RlKClgIGZ1bmN0aW9uIGNvdWxkIGNvbnN1bWUgc2lnbmlmaWNhbnQgcmVzb3VyY2VzLiBUaGlzIG1heSBsZWFkIHRvIGEgZGVuaWFsLW9mLXNlcnZpY2UuIFN0YXJ0aW5nIGluIHZlcnNpb24gMy4xNCwgdGhlIGZ1bmN0aW9uIHJlamVjdHMgbG9uZyBpbnB1dHMgYXMgc29vbiBhcyBwcmFjdGljYWJsZSBwcmlvciB0byBhbnkgZnVydGhlciBwcm9jZXNzaW5nIHRvIG1pbmltaXplIHJlc291cmNlIGNvbnN1bXB0aW9uLiBJbiB2ZXJzaW9uIDMuMTUsIHRoaXMgYXBwcm9hY2ggd2FzIGV4dGVuZGVkIHRvIGxlc3NlciB1c2VkIGFsdGVybmF0ZSBmdW5jdGlvbnMgKGkuZS4gcGVyLWxhYmVsIGNvbnZlcnNpb25zIGFuZCBjb2RlYyBzdXBwb3J0KS4gQSB3b3JrYXJvdW5kIGlzIGF2YWlsYWJsZS4gRG9tYWluIG5hbWVzIGNhbm5vdCBleGNlZWQgMjUzIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLiBJZiB0aGlzIGxlbmd0aCBsaW1pdCBpcyBlbmZvcmNlZCBwcmlvciB0byBwYXNzaW5nIHRoZSBkb21haW4gdG8gdGhlIGBpZG5hLmVuY29kZSgpYCBmdW5jdGlvbiwgaXQgc2hvdWxkIG5vIGxvbmdlciBjb25zdW1lIHNpZ25pZmljYW50IHJlc291cmNlcy4gVGhpcyBpcyB0cmlnZ2VyZWQgYnkgYXJiaXRyYXJpbHkgbGFyZ2UgaW5wdXRzIHRoYXQgd291bGQgbm90IG9jY3VyIGluIG5vcm1hbCB1c2FnZSwgYnV0IG1heSBiZSBwYXNzZWQgdG8gdGhlIGxpYnJhcnkgYXNzdW1pbmcgdGhlcmUgaXMgbm8gcHJlbGltaW5hcnkgaW5wdXQgdmFsaWRhdGlvbiBieSB0aGUgaGlnaGVyLWxldmVsIGFwcGxpY2F0aW9uLgoKIyMjIyBTZXZlcml0eQotIENWU1MgU2NvcmU6IDUuMyAvIDEwIChNZWRpdW0pCi0gVmVjdG9yIFN0cmluZzogYENWU1M6My4xL0FWOk4vQUM6TC9QUjpOL1VJOk4vUzpVL0M6Ti9JOk4vQTpMYAoKIyMjIyBSZWZlcmVuY2VzCi0gW2h0dHBzOi8vZ2l0aHViLmNvbS9ramQvaWRuYS9zZWN1cml0eS9hZHZpc29yaWVzL0dIU0EtNjVwYy1majRnLThyanhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ramQvaWRuYS9zZWN1cml0eS9hZHZpc29yaWVzL0dIU0EtNjVwYy1majRnLThyangpCgpUaGlzIGRhdGEgaXMgcHJvdmlkZWQgYnkgW09TVl0oaHR0cHM6Ly9vc3YuZGV2L3Z1bG5lcmFiaWxpdHkvUFlTRUMtMjAyNi0yMTUpIGFuZCB0aGUgW1B5UEkgQWR2aXNvcnkgRGF0YWJhc2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL2Fkdmlzb3J5LWRhdGFiYXNlKSAoW0NDLUJZIDQuMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvYWR2aXNvcnktZGF0YWJhc2UvYmxvYi9tYWluL0xJQ0VOU0UpKS4KPC9kZXRhaWxzPgoKLS0tCgojIyMgUmVsZWFzZSBOb3RlcwoKPGRldGFpbHM+CjxzdW1tYXJ5PmtqZC9pZG5hIChpZG5hKTwvc3VtbWFyeT4KCiMjIyBbYHYzLjE1YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2tqZC9pZG5hL2Jsb2IvSEVBRC9ISVNUT1JZLm1kIzMxNS0yMDI2LTA1LTEyKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20va2pkL2lkbmEvY29tcGFyZS92My4xNC4uLnYzLjE1KQoKLSBFbmZvcmNlIEROUy1sZW5ndGggY2FwIG9uIGluZGl2aWR1YWwgbGFiZWxzIGVhcmx5IGluIGBjaGVja19sYWJlbGAsCiAgc2hvcnQtY2lyY3VpdGluZyBjb250ZXh0dWFsLXJ1bGUgcHJvY2Vzc2luZyBmb3Igb3ZlcnNpemVkIGlucHV0CiAgd2hpbGUgc3RheWluZyBjb21wYXRpYmxlIHdpdGggVVRTIDQ2IHVzYWdlLgotIFRpZHkgY29yZSBoZWxwZXJzOiBob2lzdCBiaWRpIGNhdGVnb3J5IHNldHMgdG8gbW9kdWxlLWxldmVsCiAgZnJvemVuc2V0cyAoYXZvaWRpbmcgcGVyLWNvZGVwb2ludCBsaXN0IGNvbnN0cnVjdGlvbiksIHNpbXBsaWZ5CiAgbGVuZ3RoIGNoZWNrcywgYW5kIHJldXNlIHRoZSBzaGFyZWQgYF91bmljb2RlX2RvdHNfcmVgIGZyb20KICBgaWRuYS5jb3JlYCBpbiB0aGUgY29kZWMgbW9kdWxlLgotIFVzZSBgcmFpc2UgLi4uIGZyb20gZXJyYCBmb3IgcHJvcGVyIGV4Y2VwdGlvbiBjaGFpbmluZyBhbmQKICBzd2l0Y2ggaW50ZXJuYWwgc3RyaW5nIGZvcm1hdHRpbmcgdG8gZi1zdHJpbmdzLgotIEFsbG93IGBmbGl0X2NvcmVgIDQueCBpbiB0aGUgYnVpbGQgYmFja2VuZC4KLSBFeHBhbmQgdGhlIHJ1ZmYgbGludCBzZXQgKGZsYWtlOC1idWdiZWFyLCBmbGFrZTgtc2ltcGxpZnksCiAgcHl1cGdyYWRlLCBwZXJmbGludCkgYW5kIGFwcGx5IHRoZSBzdXJmYWNlZCBmaXhlczsgcGluIGxpbnQgQ0kKICB0byBQeXRob24gMy4xNC4KLSBBZGQgRGVwZW5kYWJvdCBjb25maWd1cmF0aW9uIGZvciBHaXRIdWIgQWN0aW9ucy4KLSBDb252ZXJ0IFJFQURNRSBhbmQgSElTVE9SWSBmcm9tIHJlU3RydWN0dXJlZFRleHQgdG8gTWFya2Rvd24uCi0gUmVmZXJlbmNlIENWRS0yMDI2LTQ1NDA5IGZvciB0aGUgMy4xNCBhZHZpc29yeSBpbiBwbGFjZSBvZiB0aGUKICBpbml0aWFsIEdIU0EgaWRlbnRpZmllci4KClRoYW5rcyB0byBGZWxpeCBZYW4sIFN0YW4gVWxicnljaCwgYW5kIG1ldHN3MjQtbWF4IGZvcgpjb250cmlidXRpb25zIHRvIHRoaXMgcmVsZWFzZS4KCiMjIyBbYHYzLjE0YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2tqZC9pZG5hL2Jsb2IvSEVBRC9ISVNUT1JZLm1kIzMxNC0yMDI2LTA1LTEwKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20va2pkL2lkbmEvY29tcGFyZS92My4xMy4uLnYzLjE0KQoKLSBSZW1vdmVkIG9wcG9ydHVuaXR5IHRvIHByb2Nlc3MgbG9uZyBpbnB1dHMgaW50byBxdWFkcmF0aWMKICB0aW1lIGJ5IHJlamVjdGluZyBvdmVyc2l6ZSBpbnB1dHMgdXAtZnJvbnQuIENsb3NlcyBhIGJ5cGFzcwogIG9mIHRoZSBDVkUtMjAyNC0zNjUxIG1pdGlnYXRpb24uIFxbQ1ZFLTIwMjYtNDU0MDldCgpUaGFua3MgdG8gU3RhbiBVbGJyeWNoIGZvciByZXBvcnRpbmcgdGhlIGlzc3VlLgoKIyMjIFtgdjMuMTNgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20va2pkL2lkbmEvY29tcGFyZS92My4xMi4uLnYzLjEzKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20va2pkL2lkbmEvY29tcGFyZS92My4xMi4uLnYzLjEzKQoKIyMjIFtgdjMuMTJgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20va2pkL2lkbmEvY29tcGFyZS92My4xMS4uLnYzLjEyKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20va2pkL2lkbmEvY29tcGFyZS92My4xMS4uLnYzLjEyKQoKPC9kZXRhaWxzPgoKLS0tCgojIyMgQ29uZmlndXJhdGlvbgoK8J+ThSAqKlNjaGVkdWxlKio6IChVVEMpCgotIEJyYW5jaCBjcmVhdGlvbgogIC0gQXQgYW55IHRpbWUgKG5vIHNjaGVkdWxlIGRlZmluZWQpCi0gQXV0b21lcmdlCiAgLSBBdCBhbnkgdGltZSAobm8gc2NoZWR1bGUgZGVmaW5lZCkKCvCfmqYgKipBdXRvbWVyZ2UqKjogRGlzYWJsZWQgYnkgY29uZmlnLiBQbGVhc2UgbWVyZ2UgdGhpcyBtYW51YWxseSBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkLgoK4pm7ICoqUmViYXNpbmcqKjogV2hlbmV2ZXIgUFIgYmVjb21lcyBjb25mbGljdGVkLCBvciB5b3UgdGljayB0aGUgcmViYXNlL3JldHJ5IGNoZWNrYm94LgoK8J+UlSAqKklnbm9yZSoqOiBDbG9zZSB0aGlzIFBSIGFuZCB5b3Ugd29uJ3QgYmUgcmVtaW5kZWQgYWJvdXQgdGhpcyB1cGRhdGUgYWdhaW4uCgotLS0KCiAtIFsgXSA8IS0tIHJlYmFzZS1jaGVjayAtLT5JZiB5b3Ugd2FudCB0byByZWJhc2UvcmV0cnkgdGhpcyBQUiwgY2hlY2sgdGhpcyBib3gKCi0tLQoKVGhpcyBQUiB3YXMgZ2VuZXJhdGVkIGJ5IFtNZW5kIFJlbm92YXRlXShodHRwczovL21lbmQuaW8vcmVub3ZhdGUvKS4gVmlldyB0aGUgW3JlcG9zaXRvcnkgam9iIGxvZ10oaHR0cHM6Ly9kZXZlbG9wZXIubWVuZC5pby9naXRodWIvb3Npc20vb3BlbnN0YWNrLXNpbXBsZS1zdHJlc3MpLgo8IS0tcmVub3ZhdGUtZGVidWc6ZXlKamNtVmhkR1ZrU1c1V1pYSWlPaUkwTXk0eE9EVXVNU0lzSW5Wd1pHRjBaV1JKYmxabGNpSTZJalF6TGpJMk5TNHhJaXdpZEdGeVoyVjBRbkpoYm1Ob0lqb2liV0ZwYmlJc0lteGhZbVZzY3lJNld5SnlaVzV2ZG1GMFpTSmRmUT09LS0+Cg==
      patchset: 244f08e0a8195376a74210664cde5b94f7ad59ea
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 71b711c422c10c242a8f785dc6d41ed9d12e9cd3
          trusted/project_1/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 242732586e2cba04d04867d3e302888c766bc231
          trusted/project_2/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 1d71e58c93442038e695a5d883d57a603182c7ae
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 1d71e58c93442038e695a5d883d57a603182c7ae
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 71b711c422c10c242a8f785dc6d41ed9d12e9cd3
          untrusted/project_2/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 242732586e2cba04d04867d3e302888c766bc231
        playbooks:
        - path: untrusted/project_0/github.com/osism/zuul-jobs/playbooks/flake8/run.yaml
          roles:
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_0/zuul-config
            link_target: untrusted/project_1/github.com/osism/zuul-config
            role_path: ansible/playbook_0/role_0/zuul-config/roles
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/playbook_0/role_1/openinfra-zuul-jobs
            link_target: untrusted/project_2/github.com/osism/openinfra-zuul-jobs
            role_path: ansible/playbook_0/role_1/openinfra-zuul-jobs/roles
          - checkout: main
            checkout_description: playbook branch
            link_name: ansible/playbook_0/role_2/zuul-jobs
            link_target: untrusted/project_0/github.com/osism/zuul-jobs
            role_path: ansible/playbook_0/role_2/zuul-jobs/roles
      post_review: false
      post_timeout: 1800
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/openstack-simple-stress
        name: osism/openstack-simple-stress
        short_name: openstack-simple-stress
        src_dir: src/github.com/osism/openstack-simple-stress
      projects:
        github.com/osism/openstack-simple-stress:
          canonical_hostname: github.com
          canonical_name: github.com/osism/openstack-simple-stress
          checkout: main
          checkout_description: zuul branch
          commit: a43e7cd0043c7875fdd189408a68c9d5bc25bfc5
          name: osism/openstack-simple-stress
          required: false
          short_name: openstack-simple-stress
          src_dir: src/github.com/osism/openstack-simple-stress
      ref: refs/pull/297/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
