all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:feab:90c9
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 82d98a36-916a-4399-a36f-ccba8e6bce89
        host_id: ea231daa1e899519b2913f0036770c325ddb4f23e60dfb5fd174bdda
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:feab:90c9
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.7.154
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.192.243
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:feab:90c9
        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 mypy explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#42>'
      - '<Job mypy explicit: None implied: None source: osism/python-osism/.zuul.yaml@main#133>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 8d7334708540488e9884adb9057a521c
      build_refs:
      - branch: main
        change: '1778'
        change_message: "Optimize SONIC configuration generation performance\n\nThis
          commit addresses critical performance bottlenecks in SONIC configuration
          generation by eliminating N+1 query problems and implementing efficient
          caching strategies.\r\n\r\nPerformance improvements:\r\n- Reduced API calls
          per device from ~150+ to ~15 (~90% reduction)\r\n- Expected time improvement:
          5-10 seconds to <1 second per device\r\n\r\nKey optimizations:\r\n\r\n1.
          Transfer role IPv4 address detection (_get_transfer_role_ipv4_addresses):\r\n
          \  - Changed from per-interface API calls to bulk fetching\r\n   - Bulk
          fetch all device IPs: utils.nb.ipam.ip_addresses.filter(device_id=device.id)\r\n
          \  - Bulk fetch all transfer prefixes: utils.nb.ipam.prefixes.filter(role=\"transfer\")\r\n
          \  - Use cached interfaces via get_cached_device_interfaces()\r\n   - In-memory
          IP containment checks with ipaddress module\r\n   - Impact: ~100+ API calls
          reduced to 3 per device (~97% reduction)\r\n\r\n2. VLAN interface name lookups:\r\n
          \  - Added reverse mapping: netbox_name_to_sonic dictionary\r\n   - Changed
          from O(n*m) iteration to O(1) dictionary lookups\r\n   - Applied to _add_tagged_vlans_to_ports()
          and _add_vlan_configuration()\r\n   - Impact: ~99% reduction in lookup operations\r\n\r\n3.
          Metalbox IP detection caching:\r\n   - Added module-level cache: _metalbox_ip_cache\r\n
          \  - Cache both successful and failed lookups\r\n   - Integrated with clear_all_caches()
          via new clear_metalbox_ip_cache()\r\n   - Impact: Eliminates duplicate lookups
          for NTP and DNS (50% reduction)\r\n\r\nAll changes are backward compatible
          and maintain existing functionality, error handling, and logging patterns.\r\n\r\nAI-assisted:
          Claude Code"
        change_url: https://github.com/osism/python-osism/pull/1778
        commit_id: fee9c810fc89e0e6d85a5759007e3369fdf36125
        patchset: fee9c810fc89e0e6d85a5759007e3369fdf36125
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/python-osism
          name: osism/python-osism
          short_name: python-osism
        src_dir: src/github.com/osism/python-osism
        topic: null
      buildset: 072e441c66ea4d1183c57516b5939989
      buildset_refs:
      - branch: main
        change: '1778'
        change_message: "Optimize SONIC configuration generation performance\n\nThis
          commit addresses critical performance bottlenecks in SONIC configuration
          generation by eliminating N+1 query problems and implementing efficient
          caching strategies.\r\n\r\nPerformance improvements:\r\n- Reduced API calls
          per device from ~150+ to ~15 (~90% reduction)\r\n- Expected time improvement:
          5-10 seconds to <1 second per device\r\n\r\nKey optimizations:\r\n\r\n1.
          Transfer role IPv4 address detection (_get_transfer_role_ipv4_addresses):\r\n
          \  - Changed from per-interface API calls to bulk fetching\r\n   - Bulk
          fetch all device IPs: utils.nb.ipam.ip_addresses.filter(device_id=device.id)\r\n
          \  - Bulk fetch all transfer prefixes: utils.nb.ipam.prefixes.filter(role=\"transfer\")\r\n
          \  - Use cached interfaces via get_cached_device_interfaces()\r\n   - In-memory
          IP containment checks with ipaddress module\r\n   - Impact: ~100+ API calls
          reduced to 3 per device (~97% reduction)\r\n\r\n2. VLAN interface name lookups:\r\n
          \  - Added reverse mapping: netbox_name_to_sonic dictionary\r\n   - Changed
          from O(n*m) iteration to O(1) dictionary lookups\r\n   - Applied to _add_tagged_vlans_to_ports()
          and _add_vlan_configuration()\r\n   - Impact: ~99% reduction in lookup operations\r\n\r\n3.
          Metalbox IP detection caching:\r\n   - Added module-level cache: _metalbox_ip_cache\r\n
          \  - Cache both successful and failed lookups\r\n   - Integrated with clear_all_caches()
          via new clear_metalbox_ip_cache()\r\n   - Impact: Eliminates duplicate lookups
          for NTP and DNS (50% reduction)\r\n\r\nAll changes are backward compatible
          and maintain existing functionality, error handling, and logging patterns.\r\n\r\nAI-assisted:
          Claude Code"
        change_url: https://github.com/osism/python-osism/pull/1778
        commit_id: fee9c810fc89e0e6d85a5759007e3369fdf36125
        patchset: fee9c810fc89e0e6d85a5759007e3369fdf36125
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/python-osism
          name: osism/python-osism
          short_name: python-osism
        src_dir: src/github.com/osism/python-osism
        topic: null
      change: '1778'
      change_message: "Optimize SONIC configuration generation performance\n\nThis
        commit addresses critical performance bottlenecks in SONIC configuration generation
        by eliminating N+1 query problems and implementing efficient caching strategies.\r\n\r\nPerformance
        improvements:\r\n- Reduced API calls per device from ~150+ to ~15 (~90% reduction)\r\n-
        Expected time improvement: 5-10 seconds to <1 second per device\r\n\r\nKey
        optimizations:\r\n\r\n1. Transfer role IPv4 address detection (_get_transfer_role_ipv4_addresses):\r\n
        \  - Changed from per-interface API calls to bulk fetching\r\n   - Bulk fetch
        all device IPs: utils.nb.ipam.ip_addresses.filter(device_id=device.id)\r\n
        \  - Bulk fetch all transfer prefixes: utils.nb.ipam.prefixes.filter(role=\"transfer\")\r\n
        \  - Use cached interfaces via get_cached_device_interfaces()\r\n   - In-memory
        IP containment checks with ipaddress module\r\n   - Impact: ~100+ API calls
        reduced to 3 per device (~97% reduction)\r\n\r\n2. VLAN interface name lookups:\r\n
        \  - Added reverse mapping: netbox_name_to_sonic dictionary\r\n   - Changed
        from O(n*m) iteration to O(1) dictionary lookups\r\n   - Applied to _add_tagged_vlans_to_ports()
        and _add_vlan_configuration()\r\n   - Impact: ~99% reduction in lookup operations\r\n\r\n3.
        Metalbox IP detection caching:\r\n   - Added module-level cache: _metalbox_ip_cache\r\n
        \  - Cache both successful and failed lookups\r\n   - Integrated with clear_all_caches()
        via new clear_metalbox_ip_cache()\r\n   - Impact: Eliminates duplicate lookups
        for NTP and DNS (50% reduction)\r\n\r\nAll changes are backward compatible
        and maintain existing functionality, error handling, and logging patterns.\r\n\r\nAI-assisted:
        Claude Code"
      change_url: https://github.com/osism/python-osism/pull/1778
      child_jobs: []
      commit_id: fee9c810fc89e0e6d85a5759007e3369fdf36125
      event_id: 994a5a80-b422-11f0-947a-c302892ba4f7
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/8d7334708540488e9884adb9057a521c/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/8d7334708540488e9884adb9057a521c/work/logs
        result_data_file: /var/lib/zuul/builds/8d7334708540488e9884adb9057a521c/work/results.json
        src_root: /var/lib/zuul/builds/8d7334708540488e9884adb9057a521c/work/src
        work_root: /var/lib/zuul/builds/8d7334708540488e9884adb9057a521c/work
      include_vars: []
      items:
      - branch: main
        change: '1778'
        change_message: "Optimize SONIC configuration generation performance\n\nThis
          commit addresses critical performance bottlenecks in SONIC configuration
          generation by eliminating N+1 query problems and implementing efficient
          caching strategies.\r\n\r\nPerformance improvements:\r\n- Reduced API calls
          per device from ~150+ to ~15 (~90% reduction)\r\n- Expected time improvement:
          5-10 seconds to <1 second per device\r\n\r\nKey optimizations:\r\n\r\n1.
          Transfer role IPv4 address detection (_get_transfer_role_ipv4_addresses):\r\n
          \  - Changed from per-interface API calls to bulk fetching\r\n   - Bulk
          fetch all device IPs: utils.nb.ipam.ip_addresses.filter(device_id=device.id)\r\n
          \  - Bulk fetch all transfer prefixes: utils.nb.ipam.prefixes.filter(role=\"transfer\")\r\n
          \  - Use cached interfaces via get_cached_device_interfaces()\r\n   - In-memory
          IP containment checks with ipaddress module\r\n   - Impact: ~100+ API calls
          reduced to 3 per device (~97% reduction)\r\n\r\n2. VLAN interface name lookups:\r\n
          \  - Added reverse mapping: netbox_name_to_sonic dictionary\r\n   - Changed
          from O(n*m) iteration to O(1) dictionary lookups\r\n   - Applied to _add_tagged_vlans_to_ports()
          and _add_vlan_configuration()\r\n   - Impact: ~99% reduction in lookup operations\r\n\r\n3.
          Metalbox IP detection caching:\r\n   - Added module-level cache: _metalbox_ip_cache\r\n
          \  - Cache both successful and failed lookups\r\n   - Integrated with clear_all_caches()
          via new clear_metalbox_ip_cache()\r\n   - Impact: Eliminates duplicate lookups
          for NTP and DNS (50% reduction)\r\n\r\nAll changes are backward compatible
          and maintain existing functionality, error handling, and logging patterns.\r\n\r\nAI-assisted:
          Claude Code"
        change_url: https://github.com/osism/python-osism/pull/1778
        commit_id: fee9c810fc89e0e6d85a5759007e3369fdf36125
        patchset: fee9c810fc89e0e6d85a5759007e3369fdf36125
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/python-osism
          name: osism/python-osism
          short_name: python-osism
          src_dir: src/github.com/osism/python-osism
        topic: null
      job: mypy
      jobtags: []
      max_attempts: 3
      message: T3B0aW1pemUgU09OSUMgY29uZmlndXJhdGlvbiBnZW5lcmF0aW9uIHBlcmZvcm1hbmNlCgpUaGlzIGNvbW1pdCBhZGRyZXNzZXMgY3JpdGljYWwgcGVyZm9ybWFuY2UgYm90dGxlbmVja3MgaW4gU09OSUMgY29uZmlndXJhdGlvbiBnZW5lcmF0aW9uIGJ5IGVsaW1pbmF0aW5nIE4rMSBxdWVyeSBwcm9ibGVtcyBhbmQgaW1wbGVtZW50aW5nIGVmZmljaWVudCBjYWNoaW5nIHN0cmF0ZWdpZXMuDQoNClBlcmZvcm1hbmNlIGltcHJvdmVtZW50czoNCi0gUmVkdWNlZCBBUEkgY2FsbHMgcGVyIGRldmljZSBmcm9tIH4xNTArIHRvIH4xNSAofjkwJSByZWR1Y3Rpb24pDQotIEV4cGVjdGVkIHRpbWUgaW1wcm92ZW1lbnQ6IDUtMTAgc2Vjb25kcyB0byA8MSBzZWNvbmQgcGVyIGRldmljZQ0KDQpLZXkgb3B0aW1pemF0aW9uczoNCg0KMS4gVHJhbnNmZXIgcm9sZSBJUHY0IGFkZHJlc3MgZGV0ZWN0aW9uIChfZ2V0X3RyYW5zZmVyX3JvbGVfaXB2NF9hZGRyZXNzZXMpOg0KICAgLSBDaGFuZ2VkIGZyb20gcGVyLWludGVyZmFjZSBBUEkgY2FsbHMgdG8gYnVsayBmZXRjaGluZw0KICAgLSBCdWxrIGZldGNoIGFsbCBkZXZpY2UgSVBzOiB1dGlscy5uYi5pcGFtLmlwX2FkZHJlc3Nlcy5maWx0ZXIoZGV2aWNlX2lkPWRldmljZS5pZCkNCiAgIC0gQnVsayBmZXRjaCBhbGwgdHJhbnNmZXIgcHJlZml4ZXM6IHV0aWxzLm5iLmlwYW0ucHJlZml4ZXMuZmlsdGVyKHJvbGU9InRyYW5zZmVyIikNCiAgIC0gVXNlIGNhY2hlZCBpbnRlcmZhY2VzIHZpYSBnZXRfY2FjaGVkX2RldmljZV9pbnRlcmZhY2VzKCkNCiAgIC0gSW4tbWVtb3J5IElQIGNvbnRhaW5tZW50IGNoZWNrcyB3aXRoIGlwYWRkcmVzcyBtb2R1bGUNCiAgIC0gSW1wYWN0OiB+MTAwKyBBUEkgY2FsbHMgcmVkdWNlZCB0byAzIHBlciBkZXZpY2UgKH45NyUgcmVkdWN0aW9uKQ0KDQoyLiBWTEFOIGludGVyZmFjZSBuYW1lIGxvb2t1cHM6DQogICAtIEFkZGVkIHJldmVyc2UgbWFwcGluZzogbmV0Ym94X25hbWVfdG9fc29uaWMgZGljdGlvbmFyeQ0KICAgLSBDaGFuZ2VkIGZyb20gTyhuKm0pIGl0ZXJhdGlvbiB0byBPKDEpIGRpY3Rpb25hcnkgbG9va3Vwcw0KICAgLSBBcHBsaWVkIHRvIF9hZGRfdGFnZ2VkX3ZsYW5zX3RvX3BvcnRzKCkgYW5kIF9hZGRfdmxhbl9jb25maWd1cmF0aW9uKCkNCiAgIC0gSW1wYWN0OiB+OTklIHJlZHVjdGlvbiBpbiBsb29rdXAgb3BlcmF0aW9ucw0KDQozLiBNZXRhbGJveCBJUCBkZXRlY3Rpb24gY2FjaGluZzoNCiAgIC0gQWRkZWQgbW9kdWxlLWxldmVsIGNhY2hlOiBfbWV0YWxib3hfaXBfY2FjaGUNCiAgIC0gQ2FjaGUgYm90aCBzdWNjZXNzZnVsIGFuZCBmYWlsZWQgbG9va3Vwcw0KICAgLSBJbnRlZ3JhdGVkIHdpdGggY2xlYXJfYWxsX2NhY2hlcygpIHZpYSBuZXcgY2xlYXJfbWV0YWxib3hfaXBfY2FjaGUoKQ0KICAgLSBJbXBhY3Q6IEVsaW1pbmF0ZXMgZHVwbGljYXRlIGxvb2t1cHMgZm9yIE5UUCBhbmQgRE5TICg1MCUgcmVkdWN0aW9uKQ0KDQpBbGwgY2hhbmdlcyBhcmUgYmFja3dhcmQgY29tcGF0aWJsZSBhbmQgbWFpbnRhaW4gZXhpc3RpbmcgZnVuY3Rpb25hbGl0eSwgZXJyb3IgaGFuZGxpbmcsIGFuZCBsb2dnaW5nIHBhdHRlcm5zLg0KDQpBSS1hc3Npc3RlZDogQ2xhdWRlIENvZGU=
      patchset: fee9c810fc89e0e6d85a5759007e3369fdf36125
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: caa0df55ed55158f32903d317317ac95db4da6ce
          trusted/project_1/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 397240f42127868e42e86e6aeb120c2cb092d117
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 3f5938e6b0934cbeb0ac6533a4c1487d32af3210
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: caa0df55ed55158f32903d317317ac95db4da6ce
          untrusted/project_2/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 397240f42127868e42e86e6aeb120c2cb092d117
        playbooks:
        - path: untrusted/project_0/github.com/osism/zuul-jobs/playbooks/mypy/run.yaml
          roles:
          - checkout: main
            checkout_description: playbook branch
            link_name: ansible/playbook_0/role_0/zuul-jobs
            link_target: untrusted/project_0/github.com/osism/zuul-jobs
            role_path: ansible/playbook_0/role_0/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_1/zuul-config
            link_target: untrusted/project_1/github.com/osism/zuul-config
            role_path: ansible/playbook_0/role_1/zuul-config/roles
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/playbook_0/role_2/openinfra-zuul-jobs
            link_target: untrusted/project_2/github.com/osism/openinfra-zuul-jobs
            role_path: ansible/playbook_0/role_2/openinfra-zuul-jobs/roles
      post_review: false
      post_timeout: null
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/python-osism
        name: osism/python-osism
        short_name: python-osism
        src_dir: src/github.com/osism/python-osism
      projects:
        github.com/osism/python-osism:
          canonical_hostname: github.com
          canonical_name: github.com/osism/python-osism
          checkout: main
          checkout_description: zuul branch
          commit: 90ebed0494b9a5f1607e7ddc3d553464cf902b0e
          name: osism/python-osism
          required: false
          short_name: python-osism
          src_dir: src/github.com/osism/python-osism
      ref: refs/pull/1778/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
