- job:
    name: ironic-inspector-base
    description: Base job for devstack/tempest based ironic-inspector jobs.
    parent: ironic-base
    timeout: 10800
    required-projects:
      - openstack/ironic-inspector
    irrelevant-files:
      - ^.*\.rst$
      - ^api-ref/.*$
      - ^doc/.*$
      - ^ironic_inspector/test/(?!.*tempest).*$
      - ^ironic/tests/.*$
      - ^ironic_inspector/locale/.*$
      - ^releasenotes/.*$
      - ^tools/.*$
      - ^test-requirements.txt$
      - ^setup.cfg$
      - ^tox.ini$
    vars:
      tox_envlist: all
      tempest_test_regex: Inspector
      tempest_concurrency: 1
      tempest_test_timeout: 2400
      devstack_localrc:
        BUILD_TIMEOUT: 2400
        IRONIC_VM_EPHEMERAL_DISK: 0
        IRONIC_VM_SPECS_CPU: 2
        IRONIC_VM_COUNT: 1
        IRONIC_AUTOMATED_CLEAN_ENABLED: False
        IRONIC_INSPECTOR_NODE_NOT_FOUND_HOOK: enroll
        IRONIC_INSPECTOR_CLEAN_UP_PERIOD: 5
        IRONIC_INSPECTOR_DHCP_FILTER: iptables
        IRONIC_INSPECTOR_TEMPEST_DISCOVERY_TIMEOUT: 600
        IRONIC_TEMPEST_BUILD_TIMEOUT: 2400
        SWIFT_ENABLE_TEMPURLS: True
        SWIFT_TEMPURL_KEY: secretkey
      devstack_plugins:
        ironic-inspector: https://opendev.org/openstack/ironic-inspector
      devstack_services:
        s-account: True
        s-container: True
        s-object: True
        s-proxy: True
        ir-api: True
        ir-cond: True
        ironic-inspector: True
        ironic-inspector-dhcp: True

- job:
    name: ironic-inspector-tempest-managed-non-standalone
    description: The boot is managed by ironic, ironic-inspector runs in non-standalone mode.
    parent: ironic-inspector-base
    vars:
      tempest_test_timeout: 3600
      devstack_localrc:
        BUILD_TIMEOUT: 3600
        IRONIC_DEFAULT_BOOT_OPTION: netboot
        IRONIC_INSPECTOR_STANDALONE: False
        IRONIC_TEMPEST_BUILD_TIMEOUT: 3600
        IRONIC_INSPECTOR_TEMPEST_DISCOVERY_TIMEOUT: 1200
        IRONIC_INSPECTOR_MANAGED_BOOT: True
        IRONIC_INSPECTOR_NODE_NOT_FOUND_HOOK: ''
        MEMCACHE_SERVERS: 127.0.0.1:11211
      devstack_services:
        s-account: True
        s-container: True
        s-object: True
        s-proxy: True
        ir-api: True
        ir-cond: True
        ironic-inspector-api: True
        ironic-inspector-conductor: True
        ironic-inspector-dhcp: True

- job:
    name: ironic-inspector-tempest-discovery
    description: ironic-inspector-tempest-discovery
    parent: ironic-inspector-base
    vars:
      tempest_test_regex: InspectorDiscoveryTest
      devstack_localrc:
        IRONIC_TEMPEST_WHOLE_DISK_IMAGE: True
        IRONIC_IPXE_ENABLED: True
        IRONIC_INSPECTOR_DHCP_FILTER: dnsmasq
        IRONIC_INSPECTOR_INTROSPECTION_DATA_STORE: database

- job:
    # Security testing for known issues
    name: ironic-inspector-tox-bandit
    parent: openstack-tox
    timeout: 2400
    vars:
      tox_envlist: bandit
    required-projects:
      - openstack/ironic-inspector
    irrelevant-files:
      - ^.*\.rst$
      - ^api-ref/.*$
      - ^doc/.*$
      - ^ironic_inspector/test/(?!.*tempest).*$
      - ^ironic_inspector/locale/.*$
      - ^releasenotes/.*$
      - ^tools/(?!bandit\.yml).*$
      - ^test-requirements.txt$
      - ^setup.cfg$
      - ^tox.ini$

- job:
    name: ironic-inspector-grenade
    parent: grenade
    timeout: 10800
    required-projects:
      - openstack/grenade
      - openstack/ironic
      - openstack/ironic-inspector
      - openstack/ironic-tempest-plugin
      - openstack/ironic-python-agent-builder
      - openstack/virtualbmc
    vars:
      grenade_devstack_localrc:
        shared:
          DEFAULT_INSTANCE_TYPE: baremetal
          FORCE_CONFIG_DRIVE: True
          INSTALL_TEMPEST: False
          VIRT_DRIVER: ironic
          BUILD_TIMEOUT: 1200
          IRONIC_BAREMETAL_BASIC_OPS: True
          IRONIC_BUILD_DEPLOY_RAMDISK: False
          IRONIC_CALLBACK_TIMEOUT: 600
          IRONIC_DEPLOY_DRIVER: ipmi
          IRONIC_DEFAULT_BOOT_OPTION: netboot
          IRONIC_INSPECTOR_BUILD_RAMDISK: False
          IRONIC_RAMDISK_TYPE: tinyipa
          IRONIC_TEMPEST_WHOLE_DISK_IMAGE: False
          IRONIC_VM_COUNT: 3
          IRONIC_VM_EPHEMERAL_DISK: 1
          IRONIC_VM_SPECS_RAM: 1024
          IRONIC_AUTOMATED_CLEAN_ENABLED: False
          IRONIC_INSPECTOR_DHCP_FILTER: iptables
          Q_AGENT: openvswitch
          Q_ML2_TENANT_NETWORK_TYPE: vxlan
          SWIFT_ENABLE_TEMPURLS: True
          SWIFT_TEMPURL_KEY: secretkey
          EBTABLES_RACE_FIX: True
          LIBVIRT_STORAGE_POOL_PATH: /opt/libvirt/images
        old:
          IRONIC_VM_LOG_DIR: '{{ devstack_bases.old }}/ironic-bm-logs'
      grenade_localrc:
        BASE_RUN_SMOKE: False
      grenade_tempest_concurrency: 1
      grenade_test_timeout: 2400
      devstack_plugins:
        ironic: https://opendev.org/openstack/ironic
        ironic-inspector: https://opendev.org/openstack/ironic-inspector
      devstack_services:
        c-api: False
        c-bak: False
        c-sch: False
        c-vol: False
        cinder: False
        ir-api: True
        ir-cond: True
        ironic-inspector-dhcp: True
        ironic-inspector: True
      tempest_plugins:
        - ironic-tempest-plugin
      tempest_test_regex: test_baremetal_introspection
      tox_envlist: all
      tempest_concurrency: 1
      zuul_copy_output:
        '{{ devstack_bases.old }}/ironic-bm-logs': logs
    irrelevant-files:
      - ^test-requirements.txt$
      - ^.*\.rst$
      - ^api-ref/.*$
      - ^doc/.*$
      - ^ironic_inspector/test/(?!.*tempest).*$
      - ^ironic_inspector/locale/.*$
      - ^releasenotes/.*$
      - ^setup.cfg$
      - ^tools/.*$
      - ^tox.ini$

- job:
    name: ironic-inspector-tempest-managed
    parent: ironic-inspector-tempest-managed-non-standalone
