Merge "Cleanup py27 support"
diff --git a/ironic_tempest_plugin/tests/scenario/ironic_standalone/test_ramdisk_iso.py b/ironic_tempest_plugin/tests/scenario/ironic_standalone/test_ramdisk_iso.py
index 9f8ff13..f273499 100644
--- a/ironic_tempest_plugin/tests/scenario/ironic_standalone/test_ramdisk_iso.py
+++ b/ironic_tempest_plugin/tests/scenario/ironic_standalone/test_ramdisk_iso.py
@@ -22,7 +22,7 @@
 CONF = config.CONF
 
 
-class BaremetalRamdiskBootIsoIPXE(bsm.BaremetalStandaloneScenarioTest):
+class BaremetalRamdiskBootIsoIPMIIPXE(bsm.BaremetalStandaloneScenarioTest):
 
     driver = 'ipmi'
     boot_interface = 'ipxe'
@@ -45,7 +45,8 @@
         self.boot_and_verify_ramdisk_node(self.image_ref, iso=True)
 
 
-class BaremetalRamdiskBootIsoVMedia(bsm.BaremetalStandaloneScenarioTest):
+class BaremetalRamdiskBootIsoRedfishVMedia(
+        bsm.BaremetalStandaloneScenarioTest):
 
     driver = 'redfish'
     boot_interface = 'redfish-virtual-media'
@@ -66,3 +67,26 @@
     @utils.services('image', 'network')
     def test_ramdisk_boot(self):
         self.boot_and_verify_ramdisk_node(self.image_ref, iso=True)
+
+
+class BaremetalRamdiskBootIsoSNMPIPXE(bsm.BaremetalStandaloneScenarioTest):
+
+    driver = 'snmp'
+    boot_interface = 'ipxe'
+    delete_node = False
+    deploy_interface = 'ramdisk'
+    api_microversion = '1.66'
+    image_ref = CONF.baremetal.ramdisk_iso_image_ref
+    wholedisk_image = False
+
+    @classmethod
+    def skip_checks(cls):
+        super().skip_checks()
+        if not cls.image_ref:
+            raise cls.skipException('Skipping ramdisk ISO booting as'
+                                    'no ramdisk_iso_image_ref is defined.')
+
+    @decorators.idempotent_id('2859d115-9266-4461-9286-79b146e65dc9')
+    @utils.services('image', 'network')
+    def test_ramdisk_boot(self):
+        self.boot_and_verify_ramdisk_node(self.image_ref, iso=True)
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index a6e8c5a..c261a70 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -7,72 +7,65 @@
       jobs:
         # NOTE(dtantsur): keep N-3 and older non-voting for these jobs.
         - ironic-standalone
+        - ironic-standalone-2023.2
         - ironic-standalone-2023.1
-        - ironic-standalone-zed
-        - ironic-standalone-yoga:
-            voting: false
-        - ironic-standalone-xena:
+        - ironic-standalone-zed:
             voting: false
         - ironic-tempest-functional-python3
+        - ironic-tempest-functional-python3-2023.2
         - ironic-tempest-functional-python3-2023.1
-        - ironic-tempest-functional-python3-zed
-        - ironic-tempest-functional-python3-yoga:
-            voting: false
-        - ironic-tempest-functional-python3-xena:
+        - ironic-tempest-functional-python3-zed:
             voting: false
         - ironic-tempest-functional-rbac-scope-enforced
+        - ironic-tempest-functional-rbac-scope-enforced-2023.2
         # Enable these *once* we have the policy fix backported
         # for making own node changes.
         # - ironic-tempest-functional-rbac-scope-enforced-2023.1
         # - ironic-tempest-functional-rbac-scope-enforced-zed
         - ironic-inspector-tempest
+        - ironic-inspector-tempest-2023.2
         - ironic-inspector-tempest-2023.1
-        - ironic-inspector-tempest-zed
-        - ironic-inspector-tempest-yoga:
-            voting: false
-        - ironic-inspector-tempest-xena:
+        - ironic-inspector-tempest-zed:
             voting: false
         - ironic-standalone-anaconda
+        - ironic-standalone-anaconda-2023.2
         - ironic-standalone-anaconda-2023.1
         - ironic-standalone-redfish
+        - ironic-standalone-redfish-2023.2
         - ironic-standalone-redfish-2023.1
-        - ironic-standalone-redfish-zed
-        - ironic-standalone-redfish-yoga:
-            voting: false
-        - ironic-standalone-redfish-xena:
+        - ironic-standalone-redfish-zed:
             voting: false
         # NOTE(dtantsur): these jobs cover rarely changed tests and are quite
         # unstable, so keep them non-voting.
         - ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode:
             voting: false
+        - ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-2023.2:
+            voting: false
         - ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-2023.1:
             voting: false
         - ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-zed:
             voting: false
-        - ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-yoga:
-            voting: false
-        - ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-xena:
-            voting: false
         - ironic-inspector-tempest-discovery
+        - ironic-inspector-tempest-discovery-2023.2
         - ironic-inspector-tempest-discovery-2023.1
-        - ironic-inspector-tempest-discovery-zed
-        - ironic-inspector-tempest-discovery-yoga:
-            voting: false
-        - ironic-inspector-tempest-discovery-xena:
+        - ironic-inspector-tempest-discovery-zed:
             voting: false
     gate:
       jobs:
         - ironic-standalone
+        - ironic-standalone-2023.2
         - ironic-standalone-2023.1
-        - ironic-standalone-zed
         - ironic-tempest-functional-python3
+        - ironic-tempest-functional-python3-2023.2
         - ironic-tempest-functional-python3-2023.1
-        - ironic-tempest-functional-python3-zed
+        - ironic-tempest-functional-rbac-scope-enforced-2023.2
         - ironic-tempest-functional-rbac-scope-enforced
         - ironic-inspector-tempest
+        - ironic-inspector-tempest-2023.2
         - ironic-inspector-tempest-2023.1
-        - ironic-inspector-tempest-zed
         - ironic-inspector-tempest-rbac-scope-enforced
+        - ironic-inspector-tempest-rbac-scope-enforced-2023.2
         - ironic-standalone-redfish
+        - ironic-standalone-redfish-2023.2
         - ironic-standalone-redfish-2023.1
         - ironic-inspector-tempest-discovery
diff --git a/zuul.d/stable-jobs.yaml b/zuul.d/stable-jobs.yaml
index fed604b..bbbe8c6 100644
--- a/zuul.d/stable-jobs.yaml
+++ b/zuul.d/stable-jobs.yaml
@@ -1,4 +1,9 @@
 - job:
+    name: ironic-standalone-2023.2
+    parent: ironic-standalone
+    override-checkout: stable/2023.2
+
+- job:
     name: ironic-standalone-2023.1
     parent: ironic-standalone
     override-checkout: stable/2023.1
@@ -42,6 +47,11 @@
         USE_PYTHON3: True
 
 - job:
+    name: ironic-standalone-redfish-2023.2
+    parent: ironic-standalone
+    override-checkout: stable/2023.2
+
+- job:
     name: ironic-standalone-redfish-2023.1
     parent: ironic-standalone
     override-checkout: stable/2023.1
@@ -89,11 +99,21 @@
         USE_PYTHON3: True
 
 - job:
+    name: ironic-standalone-anaconda-2023.2
+    parent: ironic-standalone-anaconda
+    override-checkout: stable/2023.2
+
+- job:
     name: ironic-standalone-anaconda-2023.1
     parent: ironic-standalone-anaconda
     override-checkout: stable/2023.1
 
 - job:
+    name: ironic-tempest-functional-python3-2023.2
+    parent: ironic-tempest-functional-python3
+    override-checkout: stable/2023.2
+
+- job:
     name: ironic-tempest-functional-python3-2023.1
     parent: ironic-tempest-functional-python3
     override-checkout: stable/2023.1
@@ -134,6 +154,11 @@
     override-checkout: stable/train
 
 - job:
+    name: ironic-tempest-functional-rbac-scope-enforced-2023.2
+    parent: ironic-tempest-functional-rbac-scope-enforced
+    override-checkout: stable/2023.2
+
+- job:
     name: ironic-tempest-functional-rbac-scope-enforced-2023.1
     parent: ironic-tempest-functional-rbac-scope-enforced
     override-checkout: stable/2023.1
@@ -149,6 +174,11 @@
     override-checkout: stable/zed
 
 - job:
+    name: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-2023.2
+    parent: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode
+    override-checkout: stable/2023.2
+
+- job:
     name: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-2023.1
     parent: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode
     override-checkout: stable/2023.1
@@ -187,6 +217,11 @@
         USE_PYTHON3: True
 
 - job:
+    name: ironic-inspector-tempest-2023.2
+    parent: ironic-inspector-tempest
+    override-checkout: stable/2023.2
+
+- job:
     name: ironic-inspector-tempest-2023.1
     parent: ironic-inspector-tempest
     override-checkout: stable/2023.1
@@ -239,6 +274,11 @@
         USE_PYTHON3: True
 
 - job:
+    name: ironic-inspector-tempest-rbac-scope-enforced-2023.2
+    parent: ironic-inspector-tempest-rbac-scope-enforced
+    override-checkout: stable/2023.2
+
+- job:
     name: ironic-inspector-tempest-rbac-scope-enforced-2023.1
     parent: ironic-inspector-tempest-rbac-scope-enforced
     override-checkout: stable/2023.1
@@ -249,6 +289,11 @@
     override-checkout: stable/zed
 
 - job:
+    name: ironic-inspector-tempest-discovery-2023.2
+    parent: ironic-inspector-tempest-discovery
+    override-checkout: stable/2023.2
+
+- job:
     name: ironic-inspector-tempest-discovery-2023.1
     parent: ironic-inspector-tempest-discovery
     override-checkout: stable/2023.1