all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fe81:e97d
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      docker_namespace: osism
      docker_registry: osism.harbor.regio.digital
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: fc973487-a4a6-4829-802a-911f87dfc48b
        host_id: df70f2a3f3d0c26428f22685cfc722ebc48099d99e7332c39e017195
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fe81:e97d
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.7.56
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.192.135
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fe81:e97d
        region: null
        slot: null
  vars:
    docker_namespace: osism
    docker_registry: osism.harbor.regio.digital
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job container-image-python-osism-build explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/python-osism/.zuul.yaml@main#79>'
      - '<Job container-image-python-osism-build explicit: None implied: None source:
        osism/python-osism/.zuul.yaml@main#138>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 3569c8bddac947239dd56a0dc6791bfa
      build_refs:
      - branch: main
        change: '2214'
        change_message: "Add unit tests for osism/tasks/conductor/sonic/device\n\nCovers
          the three lightweight accessors in\r\nosism/tasks/conductor/sonic/device.py:\r\n\r\n-
          get_device_platform: custom-field path (sonic_parameters.platform), generated
          fallback from hwsku (lowercase + hyphen\u2192underscore), defensive guards
          (custom_fields attr missing, sonic_parameters None or absent, platform None/empty),
          hwsku without hyphens, and custom-field precedence over hwsku.\r\n- get_device_hostname:
          inventory_hostname custom-field path, falsy (None/empty) and missing-key
          fallbacks to device.name, missing custom_fields attribute, and verification
          that device.name is returned unchanged.\r\n- get_device_mac_address: single
          mgmt-only interface, skipping non-mgmt interfaces, falsy mac_address (None/empty)
          falls back to default, no interfaces at all, only data interfaces, exception
          in filter() and exception during iteration both fall back with a warning,
          multiple mgmt interfaces returns the first (loop break), falsy first mgmt
          does not stop the loop, filter is called with device_id=device.id, and a
          debug log is emitted on match.\r\n\r\nThe bigger functions in this file
          (_serialize_device, get_devices) depend on netbox.get_device_oob_ip and\r\nnetbox.get_nb_device_query_list_sonic
          and belong to a later tier once those helpers have their own tests.\r\n\r\nCloses
          #2204\r\n\r\nAI-assisted: Claude Code"
        change_url: https://github.com/osism/python-osism/pull/2214
        commit_id: af7d9a36f3f71da2bbb1c4d0844615fb6e873f8e
        patchset: af7d9a36f3f71da2bbb1c4d0844615fb6e873f8e
        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: 27a6c31955e8403e80896eb73e7e61df
      buildset_refs:
      - branch: main
        change: '2214'
        change_message: "Add unit tests for osism/tasks/conductor/sonic/device\n\nCovers
          the three lightweight accessors in\r\nosism/tasks/conductor/sonic/device.py:\r\n\r\n-
          get_device_platform: custom-field path (sonic_parameters.platform), generated
          fallback from hwsku (lowercase + hyphen\u2192underscore), defensive guards
          (custom_fields attr missing, sonic_parameters None or absent, platform None/empty),
          hwsku without hyphens, and custom-field precedence over hwsku.\r\n- get_device_hostname:
          inventory_hostname custom-field path, falsy (None/empty) and missing-key
          fallbacks to device.name, missing custom_fields attribute, and verification
          that device.name is returned unchanged.\r\n- get_device_mac_address: single
          mgmt-only interface, skipping non-mgmt interfaces, falsy mac_address (None/empty)
          falls back to default, no interfaces at all, only data interfaces, exception
          in filter() and exception during iteration both fall back with a warning,
          multiple mgmt interfaces returns the first (loop break), falsy first mgmt
          does not stop the loop, filter is called with device_id=device.id, and a
          debug log is emitted on match.\r\n\r\nThe bigger functions in this file
          (_serialize_device, get_devices) depend on netbox.get_device_oob_ip and\r\nnetbox.get_nb_device_query_list_sonic
          and belong to a later tier once those helpers have their own tests.\r\n\r\nCloses
          #2204\r\n\r\nAI-assisted: Claude Code"
        change_url: https://github.com/osism/python-osism/pull/2214
        commit_id: af7d9a36f3f71da2bbb1c4d0844615fb6e873f8e
        patchset: af7d9a36f3f71da2bbb1c4d0844615fb6e873f8e
        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: '2214'
      change_message: "Add unit tests for osism/tasks/conductor/sonic/device\n\nCovers
        the three lightweight accessors in\r\nosism/tasks/conductor/sonic/device.py:\r\n\r\n-
        get_device_platform: custom-field path (sonic_parameters.platform), generated
        fallback from hwsku (lowercase + hyphen\u2192underscore), defensive guards
        (custom_fields attr missing, sonic_parameters None or absent, platform None/empty),
        hwsku without hyphens, and custom-field precedence over hwsku.\r\n- get_device_hostname:
        inventory_hostname custom-field path, falsy (None/empty) and missing-key fallbacks
        to device.name, missing custom_fields attribute, and verification that device.name
        is returned unchanged.\r\n- get_device_mac_address: single mgmt-only interface,
        skipping non-mgmt interfaces, falsy mac_address (None/empty) falls back to
        default, no interfaces at all, only data interfaces, exception in filter()
        and exception during iteration both fall back with a warning, multiple mgmt
        interfaces returns the first (loop break), falsy first mgmt does not stop
        the loop, filter is called with device_id=device.id, and a debug log is emitted
        on match.\r\n\r\nThe bigger functions in this file (_serialize_device, get_devices)
        depend on netbox.get_device_oob_ip and\r\nnetbox.get_nb_device_query_list_sonic
        and belong to a later tier once those helpers have their own tests.\r\n\r\nCloses
        #2204\r\n\r\nAI-assisted: Claude Code"
      change_url: https://github.com/osism/python-osism/pull/2214
      child_jobs: []
      commit_id: af7d9a36f3f71da2bbb1c4d0844615fb6e873f8e
      event_id: 4267e400-4214-11f1-96c7-c9eb12ccda25
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/3569c8bddac947239dd56a0dc6791bfa/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/3569c8bddac947239dd56a0dc6791bfa/work/logs
        result_data_file: /var/lib/zuul/builds/3569c8bddac947239dd56a0dc6791bfa/work/results.json
        src_root: /var/lib/zuul/builds/3569c8bddac947239dd56a0dc6791bfa/work/src
        work_root: /var/lib/zuul/builds/3569c8bddac947239dd56a0dc6791bfa/work
      include_vars: []
      items:
      - branch: main
        change: '2214'
        change_message: "Add unit tests for osism/tasks/conductor/sonic/device\n\nCovers
          the three lightweight accessors in\r\nosism/tasks/conductor/sonic/device.py:\r\n\r\n-
          get_device_platform: custom-field path (sonic_parameters.platform), generated
          fallback from hwsku (lowercase + hyphen\u2192underscore), defensive guards
          (custom_fields attr missing, sonic_parameters None or absent, platform None/empty),
          hwsku without hyphens, and custom-field precedence over hwsku.\r\n- get_device_hostname:
          inventory_hostname custom-field path, falsy (None/empty) and missing-key
          fallbacks to device.name, missing custom_fields attribute, and verification
          that device.name is returned unchanged.\r\n- get_device_mac_address: single
          mgmt-only interface, skipping non-mgmt interfaces, falsy mac_address (None/empty)
          falls back to default, no interfaces at all, only data interfaces, exception
          in filter() and exception during iteration both fall back with a warning,
          multiple mgmt interfaces returns the first (loop break), falsy first mgmt
          does not stop the loop, filter is called with device_id=device.id, and a
          debug log is emitted on match.\r\n\r\nThe bigger functions in this file
          (_serialize_device, get_devices) depend on netbox.get_device_oob_ip and\r\nnetbox.get_nb_device_query_list_sonic
          and belong to a later tier once those helpers have their own tests.\r\n\r\nCloses
          #2204\r\n\r\nAI-assisted: Claude Code"
        change_url: https://github.com/osism/python-osism/pull/2214
        commit_id: af7d9a36f3f71da2bbb1c4d0844615fb6e873f8e
        patchset: af7d9a36f3f71da2bbb1c4d0844615fb6e873f8e
        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: container-image-python-osism-build
      jobtags: []
      max_attempts: 3
      message: QWRkIHVuaXQgdGVzdHMgZm9yIG9zaXNtL3Rhc2tzL2NvbmR1Y3Rvci9zb25pYy9kZXZpY2UKCkNvdmVycyB0aGUgdGhyZWUgbGlnaHR3ZWlnaHQgYWNjZXNzb3JzIGluDQpvc2lzbS90YXNrcy9jb25kdWN0b3Ivc29uaWMvZGV2aWNlLnB5Og0KDQotIGdldF9kZXZpY2VfcGxhdGZvcm06IGN1c3RvbS1maWVsZCBwYXRoIChzb25pY19wYXJhbWV0ZXJzLnBsYXRmb3JtKSwgZ2VuZXJhdGVkIGZhbGxiYWNrIGZyb20gaHdza3UgKGxvd2VyY2FzZSArIGh5cGhlbuKGknVuZGVyc2NvcmUpLCBkZWZlbnNpdmUgZ3VhcmRzIChjdXN0b21fZmllbGRzIGF0dHIgbWlzc2luZywgc29uaWNfcGFyYW1ldGVycyBOb25lIG9yIGFic2VudCwgcGxhdGZvcm0gTm9uZS9lbXB0eSksIGh3c2t1IHdpdGhvdXQgaHlwaGVucywgYW5kIGN1c3RvbS1maWVsZCBwcmVjZWRlbmNlIG92ZXIgaHdza3UuDQotIGdldF9kZXZpY2VfaG9zdG5hbWU6IGludmVudG9yeV9ob3N0bmFtZSBjdXN0b20tZmllbGQgcGF0aCwgZmFsc3kgKE5vbmUvZW1wdHkpIGFuZCBtaXNzaW5nLWtleSBmYWxsYmFja3MgdG8gZGV2aWNlLm5hbWUsIG1pc3NpbmcgY3VzdG9tX2ZpZWxkcyBhdHRyaWJ1dGUsIGFuZCB2ZXJpZmljYXRpb24gdGhhdCBkZXZpY2UubmFtZSBpcyByZXR1cm5lZCB1bmNoYW5nZWQuDQotIGdldF9kZXZpY2VfbWFjX2FkZHJlc3M6IHNpbmdsZSBtZ210LW9ubHkgaW50ZXJmYWNlLCBza2lwcGluZyBub24tbWdtdCBpbnRlcmZhY2VzLCBmYWxzeSBtYWNfYWRkcmVzcyAoTm9uZS9lbXB0eSkgZmFsbHMgYmFjayB0byBkZWZhdWx0LCBubyBpbnRlcmZhY2VzIGF0IGFsbCwgb25seSBkYXRhIGludGVyZmFjZXMsIGV4Y2VwdGlvbiBpbiBmaWx0ZXIoKSBhbmQgZXhjZXB0aW9uIGR1cmluZyBpdGVyYXRpb24gYm90aCBmYWxsIGJhY2sgd2l0aCBhIHdhcm5pbmcsIG11bHRpcGxlIG1nbXQgaW50ZXJmYWNlcyByZXR1cm5zIHRoZSBmaXJzdCAobG9vcCBicmVhayksIGZhbHN5IGZpcnN0IG1nbXQgZG9lcyBub3Qgc3RvcCB0aGUgbG9vcCwgZmlsdGVyIGlzIGNhbGxlZCB3aXRoIGRldmljZV9pZD1kZXZpY2UuaWQsIGFuZCBhIGRlYnVnIGxvZyBpcyBlbWl0dGVkIG9uIG1hdGNoLg0KDQpUaGUgYmlnZ2VyIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgKF9zZXJpYWxpemVfZGV2aWNlLCBnZXRfZGV2aWNlcykgZGVwZW5kIG9uIG5ldGJveC5nZXRfZGV2aWNlX29vYl9pcCBhbmQNCm5ldGJveC5nZXRfbmJfZGV2aWNlX3F1ZXJ5X2xpc3Rfc29uaWMgYW5kIGJlbG9uZyB0byBhIGxhdGVyIHRpZXIgb25jZSB0aG9zZSBoZWxwZXJzIGhhdmUgdGhlaXIgb3duIHRlc3RzLg0KDQpDbG9zZXMgIzIyMDQNCg0KQUktYXNzaXN0ZWQ6IENsYXVkZSBDb2Rl
      patchset: af7d9a36f3f71da2bbb1c4d0844615fb6e873f8e
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 69987497b92a6fd27b27eac0fffd3d2d5411103c
          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/python-osism:
            canonical_name: github.com/osism/python-osism
            checkout: main
            commit: 5068d30287fee6ebd63202c302e57ab7df31965e
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 69987497b92a6fd27b27eac0fffd3d2d5411103c
          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/python-osism/playbooks/build.yml
          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: 5068d30287fee6ebd63202c302e57ab7df31965e
          name: osism/python-osism
          required: false
          short_name: python-osism
          src_dir: src/github.com/osism/python-osism
      ref: refs/pull/2214/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
