all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fe6b:8a36
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 5bf2f928-9dd9-4eb6-9137-3e1c56f7a80a
        host_id: df70f2a3f3d0c26428f22685cfc722ebc48099d99e7332c39e017195
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fe6b:8a36
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.0.102
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.22
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fe6b:8a36
        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 python-black explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#54>'
      - '<Job python-black explicit: None implied: None source: osism/netbox-manager/.zuul.yaml@main#39>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 789c85ceae194cd19c3e594aeca070a7
      build_refs:
      - branch: main
        change: '267'
        change_message: "Clean up rendered playbook temp file\n\n## Problem\n\n`handle_file()`
          renders each resource file's Ansible playbook into a\n`NamedTemporaryFile(mode=\"w+\",
          suffix=\".yml\", delete=False)` created with **no\n`dir=` argument** (`netbox_manager/main.py:597`).
          As a result the file lands in\nthe *system* temp directory instead of inside
          the `TemporaryDirectory` opened\none line above, and `delete=False` means
          it is never unlinked. Every processed\nresource file leaks one `.yml` playbook
          into the system temp dir for the\nlifetime of the process, with no cleanup.\n\n##
          Fix\n\nPass `dir=temp_dir` so the temp playbook is created inside the surrounding\n`TemporaryDirectory`.
          It is still written before, and read by\n`ansible_runner.run()` during,
          the open context, and is removed together with\nthe directory when the `with`-block
          exits. `delete=False` is retained so the\nclosed handle stays readable by
          ansible-runner during the run.\n\n## Verification\n\n- Existing unit suite
          passes on this branch (`152 passed`).\n- Drove `handle_file()` with a stubbed
          `ansible_runner`: the playbook exists\n  during `run()`, resides under the
          temp directory, and is gone once\n  `handle_file()` returns \u2014 no `.yml`
          left in the system temp dir.\n\n## \u26A0\uFE0F Impact on #266\n\nThis bug
          was surfaced (as pre-existing) by the code review of #266. That PR's\n`test_run_invocation_kwargs`
          reads the rendered playbook back off disk *after*\n`handle_file()` returns,
          which only works **because of this leak**. Once this\nfix and #266 converge,
          that test will break.\n\nThe test file and `mock_ansible_runner` fixture
          do not exist on `main`, so\nnothing breaks here \u2014 but #266 will need
          its test adapted before/when it merges\non top of this: have the fake `run()`
          capture the playbook content *during* the\ncall, instead of reading it back
          afterward.\n\n- osism/netbox-manager#266\n\n\U0001F916 Generated with [Claude
          Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/netbox-manager/pull/267
        commit_id: 0773f2394d13cbb4b18becd9f0b0be67a3632131
        patchset: 0773f2394d13cbb4b18becd9f0b0be67a3632131
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/netbox-manager
          name: osism/netbox-manager
          short_name: netbox-manager
        src_dir: src/github.com/osism/netbox-manager
        topic: null
      buildset: e40026f6fbdf41d085de9427f0d26198
      buildset_refs:
      - branch: main
        change: '267'
        change_message: "Clean up rendered playbook temp file\n\n## Problem\n\n`handle_file()`
          renders each resource file's Ansible playbook into a\n`NamedTemporaryFile(mode=\"w+\",
          suffix=\".yml\", delete=False)` created with **no\n`dir=` argument** (`netbox_manager/main.py:597`).
          As a result the file lands in\nthe *system* temp directory instead of inside
          the `TemporaryDirectory` opened\none line above, and `delete=False` means
          it is never unlinked. Every processed\nresource file leaks one `.yml` playbook
          into the system temp dir for the\nlifetime of the process, with no cleanup.\n\n##
          Fix\n\nPass `dir=temp_dir` so the temp playbook is created inside the surrounding\n`TemporaryDirectory`.
          It is still written before, and read by\n`ansible_runner.run()` during,
          the open context, and is removed together with\nthe directory when the `with`-block
          exits. `delete=False` is retained so the\nclosed handle stays readable by
          ansible-runner during the run.\n\n## Verification\n\n- Existing unit suite
          passes on this branch (`152 passed`).\n- Drove `handle_file()` with a stubbed
          `ansible_runner`: the playbook exists\n  during `run()`, resides under the
          temp directory, and is gone once\n  `handle_file()` returns \u2014 no `.yml`
          left in the system temp dir.\n\n## \u26A0\uFE0F Impact on #266\n\nThis bug
          was surfaced (as pre-existing) by the code review of #266. That PR's\n`test_run_invocation_kwargs`
          reads the rendered playbook back off disk *after*\n`handle_file()` returns,
          which only works **because of this leak**. Once this\nfix and #266 converge,
          that test will break.\n\nThe test file and `mock_ansible_runner` fixture
          do not exist on `main`, so\nnothing breaks here \u2014 but #266 will need
          its test adapted before/when it merges\non top of this: have the fake `run()`
          capture the playbook content *during* the\ncall, instead of reading it back
          afterward.\n\n- osism/netbox-manager#266\n\n\U0001F916 Generated with [Claude
          Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/netbox-manager/pull/267
        commit_id: 0773f2394d13cbb4b18becd9f0b0be67a3632131
        patchset: 0773f2394d13cbb4b18becd9f0b0be67a3632131
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/netbox-manager
          name: osism/netbox-manager
          short_name: netbox-manager
        src_dir: src/github.com/osism/netbox-manager
        topic: null
      change: '267'
      change_message: "Clean up rendered playbook temp file\n\n## Problem\n\n`handle_file()`
        renders each resource file's Ansible playbook into a\n`NamedTemporaryFile(mode=\"w+\",
        suffix=\".yml\", delete=False)` created with **no\n`dir=` argument** (`netbox_manager/main.py:597`).
        As a result the file lands in\nthe *system* temp directory instead of inside
        the `TemporaryDirectory` opened\none line above, and `delete=False` means
        it is never unlinked. Every processed\nresource file leaks one `.yml` playbook
        into the system temp dir for the\nlifetime of the process, with no cleanup.\n\n##
        Fix\n\nPass `dir=temp_dir` so the temp playbook is created inside the surrounding\n`TemporaryDirectory`.
        It is still written before, and read by\n`ansible_runner.run()` during, the
        open context, and is removed together with\nthe directory when the `with`-block
        exits. `delete=False` is retained so the\nclosed handle stays readable by
        ansible-runner during the run.\n\n## Verification\n\n- Existing unit suite
        passes on this branch (`152 passed`).\n- Drove `handle_file()` with a stubbed
        `ansible_runner`: the playbook exists\n  during `run()`, resides under the
        temp directory, and is gone once\n  `handle_file()` returns \u2014 no `.yml`
        left in the system temp dir.\n\n## \u26A0\uFE0F Impact on #266\n\nThis bug
        was surfaced (as pre-existing) by the code review of #266. That PR's\n`test_run_invocation_kwargs`
        reads the rendered playbook back off disk *after*\n`handle_file()` returns,
        which only works **because of this leak**. Once this\nfix and #266 converge,
        that test will break.\n\nThe test file and `mock_ansible_runner` fixture do
        not exist on `main`, so\nnothing breaks here \u2014 but #266 will need its
        test adapted before/when it merges\non top of this: have the fake `run()`
        capture the playbook content *during* the\ncall, instead of reading it back
        afterward.\n\n- osism/netbox-manager#266\n\n\U0001F916 Generated with [Claude
        Code](https://claude.com/claude-code)"
      change_url: https://github.com/osism/netbox-manager/pull/267
      child_jobs: []
      commit_id: 0773f2394d13cbb4b18becd9f0b0be67a3632131
      event_id: 6d902a80-764d-11f1-91e0-ce6bc1f25505
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/789c85ceae194cd19c3e594aeca070a7/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/789c85ceae194cd19c3e594aeca070a7/work/logs
        result_data_file: /var/lib/zuul/builds/789c85ceae194cd19c3e594aeca070a7/work/results.json
        src_root: /var/lib/zuul/builds/789c85ceae194cd19c3e594aeca070a7/work/src
        work_root: /var/lib/zuul/builds/789c85ceae194cd19c3e594aeca070a7/work
      include_vars: []
      items:
      - branch: main
        change: '267'
        change_message: "Clean up rendered playbook temp file\n\n## Problem\n\n`handle_file()`
          renders each resource file's Ansible playbook into a\n`NamedTemporaryFile(mode=\"w+\",
          suffix=\".yml\", delete=False)` created with **no\n`dir=` argument** (`netbox_manager/main.py:597`).
          As a result the file lands in\nthe *system* temp directory instead of inside
          the `TemporaryDirectory` opened\none line above, and `delete=False` means
          it is never unlinked. Every processed\nresource file leaks one `.yml` playbook
          into the system temp dir for the\nlifetime of the process, with no cleanup.\n\n##
          Fix\n\nPass `dir=temp_dir` so the temp playbook is created inside the surrounding\n`TemporaryDirectory`.
          It is still written before, and read by\n`ansible_runner.run()` during,
          the open context, and is removed together with\nthe directory when the `with`-block
          exits. `delete=False` is retained so the\nclosed handle stays readable by
          ansible-runner during the run.\n\n## Verification\n\n- Existing unit suite
          passes on this branch (`152 passed`).\n- Drove `handle_file()` with a stubbed
          `ansible_runner`: the playbook exists\n  during `run()`, resides under the
          temp directory, and is gone once\n  `handle_file()` returns \u2014 no `.yml`
          left in the system temp dir.\n\n## \u26A0\uFE0F Impact on #266\n\nThis bug
          was surfaced (as pre-existing) by the code review of #266. That PR's\n`test_run_invocation_kwargs`
          reads the rendered playbook back off disk *after*\n`handle_file()` returns,
          which only works **because of this leak**. Once this\nfix and #266 converge,
          that test will break.\n\nThe test file and `mock_ansible_runner` fixture
          do not exist on `main`, so\nnothing breaks here \u2014 but #266 will need
          its test adapted before/when it merges\non top of this: have the fake `run()`
          capture the playbook content *during* the\ncall, instead of reading it back
          afterward.\n\n- osism/netbox-manager#266\n\n\U0001F916 Generated with [Claude
          Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/netbox-manager/pull/267
        commit_id: 0773f2394d13cbb4b18becd9f0b0be67a3632131
        patchset: 0773f2394d13cbb4b18becd9f0b0be67a3632131
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/netbox-manager
          name: osism/netbox-manager
          short_name: netbox-manager
          src_dir: src/github.com/osism/netbox-manager
        topic: null
      job: python-black
      jobtags: []
      max_attempts: 3
      message: Q2xlYW4gdXAgcmVuZGVyZWQgcGxheWJvb2sgdGVtcCBmaWxlCgojIyBQcm9ibGVtCgpgaGFuZGxlX2ZpbGUoKWAgcmVuZGVycyBlYWNoIHJlc291cmNlIGZpbGUncyBBbnNpYmxlIHBsYXlib29rIGludG8gYQpgTmFtZWRUZW1wb3JhcnlGaWxlKG1vZGU9IncrIiwgc3VmZml4PSIueW1sIiwgZGVsZXRlPUZhbHNlKWAgY3JlYXRlZCB3aXRoICoqbm8KYGRpcj1gIGFyZ3VtZW50KiogKGBuZXRib3hfbWFuYWdlci9tYWluLnB5OjU5N2ApLiBBcyBhIHJlc3VsdCB0aGUgZmlsZSBsYW5kcyBpbgp0aGUgKnN5c3RlbSogdGVtcCBkaXJlY3RvcnkgaW5zdGVhZCBvZiBpbnNpZGUgdGhlIGBUZW1wb3JhcnlEaXJlY3RvcnlgIG9wZW5lZApvbmUgbGluZSBhYm92ZSwgYW5kIGBkZWxldGU9RmFsc2VgIG1lYW5zIGl0IGlzIG5ldmVyIHVubGlua2VkLiBFdmVyeSBwcm9jZXNzZWQKcmVzb3VyY2UgZmlsZSBsZWFrcyBvbmUgYC55bWxgIHBsYXlib29rIGludG8gdGhlIHN5c3RlbSB0ZW1wIGRpciBmb3IgdGhlCmxpZmV0aW1lIG9mIHRoZSBwcm9jZXNzLCB3aXRoIG5vIGNsZWFudXAuCgojIyBGaXgKClBhc3MgYGRpcj10ZW1wX2RpcmAgc28gdGhlIHRlbXAgcGxheWJvb2sgaXMgY3JlYXRlZCBpbnNpZGUgdGhlIHN1cnJvdW5kaW5nCmBUZW1wb3JhcnlEaXJlY3RvcnlgLiBJdCBpcyBzdGlsbCB3cml0dGVuIGJlZm9yZSwgYW5kIHJlYWQgYnkKYGFuc2libGVfcnVubmVyLnJ1bigpYCBkdXJpbmcsIHRoZSBvcGVuIGNvbnRleHQsIGFuZCBpcyByZW1vdmVkIHRvZ2V0aGVyIHdpdGgKdGhlIGRpcmVjdG9yeSB3aGVuIHRoZSBgd2l0aGAtYmxvY2sgZXhpdHMuIGBkZWxldGU9RmFsc2VgIGlzIHJldGFpbmVkIHNvIHRoZQpjbG9zZWQgaGFuZGxlIHN0YXlzIHJlYWRhYmxlIGJ5IGFuc2libGUtcnVubmVyIGR1cmluZyB0aGUgcnVuLgoKIyMgVmVyaWZpY2F0aW9uCgotIEV4aXN0aW5nIHVuaXQgc3VpdGUgcGFzc2VzIG9uIHRoaXMgYnJhbmNoIChgMTUyIHBhc3NlZGApLgotIERyb3ZlIGBoYW5kbGVfZmlsZSgpYCB3aXRoIGEgc3R1YmJlZCBgYW5zaWJsZV9ydW5uZXJgOiB0aGUgcGxheWJvb2sgZXhpc3RzCiAgZHVyaW5nIGBydW4oKWAsIHJlc2lkZXMgdW5kZXIgdGhlIHRlbXAgZGlyZWN0b3J5LCBhbmQgaXMgZ29uZSBvbmNlCiAgYGhhbmRsZV9maWxlKClgIHJldHVybnMg4oCUIG5vIGAueW1sYCBsZWZ0IGluIHRoZSBzeXN0ZW0gdGVtcCBkaXIuCgojIyDimqDvuI8gSW1wYWN0IG9uICMyNjYKClRoaXMgYnVnIHdhcyBzdXJmYWNlZCAoYXMgcHJlLWV4aXN0aW5nKSBieSB0aGUgY29kZSByZXZpZXcgb2YgIzI2Ni4gVGhhdCBQUidzCmB0ZXN0X3J1bl9pbnZvY2F0aW9uX2t3YXJnc2AgcmVhZHMgdGhlIHJlbmRlcmVkIHBsYXlib29rIGJhY2sgb2ZmIGRpc2sgKmFmdGVyKgpgaGFuZGxlX2ZpbGUoKWAgcmV0dXJucywgd2hpY2ggb25seSB3b3JrcyAqKmJlY2F1c2Ugb2YgdGhpcyBsZWFrKiouIE9uY2UgdGhpcwpmaXggYW5kICMyNjYgY29udmVyZ2UsIHRoYXQgdGVzdCB3aWxsIGJyZWFrLgoKVGhlIHRlc3QgZmlsZSBhbmQgYG1vY2tfYW5zaWJsZV9ydW5uZXJgIGZpeHR1cmUgZG8gbm90IGV4aXN0IG9uIGBtYWluYCwgc28Kbm90aGluZyBicmVha3MgaGVyZSDigJQgYnV0ICMyNjYgd2lsbCBuZWVkIGl0cyB0ZXN0IGFkYXB0ZWQgYmVmb3JlL3doZW4gaXQgbWVyZ2VzCm9uIHRvcCBvZiB0aGlzOiBoYXZlIHRoZSBmYWtlIGBydW4oKWAgY2FwdHVyZSB0aGUgcGxheWJvb2sgY29udGVudCAqZHVyaW5nKiB0aGUKY2FsbCwgaW5zdGVhZCBvZiByZWFkaW5nIGl0IGJhY2sgYWZ0ZXJ3YXJkLgoKLSBvc2lzbS9uZXRib3gtbWFuYWdlciMyNjYKCvCfpJYgR2VuZXJhdGVkIHdpdGggW0NsYXVkZSBDb2RlXShodHRwczovL2NsYXVkZS5jb20vY2xhdWRlLWNvZGUp
      patchset: 0773f2394d13cbb4b18becd9f0b0be67a3632131
      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/python-black/run.yml
          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/netbox-manager
        name: osism/netbox-manager
        short_name: netbox-manager
        src_dir: src/github.com/osism/netbox-manager
      projects:
        github.com/osism/netbox-manager:
          canonical_hostname: github.com
          canonical_name: github.com/osism/netbox-manager
          checkout: main
          checkout_description: zuul branch
          commit: 580eeca6ebb49fd340619632d63ed1722200a8bf
          name: osism/netbox-manager
          required: false
          short_name: netbox-manager
          src_dir: src/github.com/osism/netbox-manager
      ref: refs/pull/267/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
