Merge "Drop unnecessary 'x' bit from doc config file"
diff --git a/ironic_tempest_plugin/tests/scenario/test_baremetal_basic_ops.py b/ironic_tempest_plugin/tests/scenario/test_baremetal_basic_ops.py
index 010c220..2a36c6a 100644
--- a/ironic_tempest_plugin/tests/scenario/test_baremetal_basic_ops.py
+++ b/ironic_tempest_plugin/tests/scenario/test_baremetal_basic_ops.py
@@ -240,8 +240,16 @@
         # Reboot node
         self.reboot_node(self.instance)
 
-        # ensure we can ping the node again
-        self.assertTrue(self.ping_ip_address(ip_address))
+        # Ensure we have some sort of connectivity
+        # Attempt to ping, if all else fails fall back to an ssh connection
+        # which worked previously.
+        pinging = self.ping_ip_address(ip_address)
+        if not pinging:
+            self.get_remote_client(ip_address, server=self.instance)
+        else:
+            # If we're here, this is successful. If ssh fails above,
+            # the job will ultimately fail.
+            self.assertTrue(pinging)
 
         self.terminate_instance(self.instance)
 
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index 8e7dd20..1be91a6 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -7,32 +7,42 @@
       jobs:
         # NOTE(dtantsur): keep N-3 and older non-voting for these jobs.
         - ironic-standalone
+        - ironic-standalone-2024.2
         - ironic-standalone-2024.1
-        - ironic-standalone-2023.2
+        - ironic-standalone-2023.2:
+            voting: false
         - ironic-standalone-2023.1:
             voting: false
         - ironic-tempest-functional-python3
+        - ironic-tempest-functional-python3-2024.2
         - ironic-tempest-functional-python3-2024.1
         - ironic-tempest-functional-python3-2023.2:
             voting: false
+        - ironic-tempest-functional-rbac-scope-enforced-2024.2
         - ironic-tempest-functional-rbac-scope-enforced-2024.1
-        - 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-2023.2:
+            voting: false
+        - ironic-tempest-functional-rbac-scope-enforced-2023.1:
+            voting: false
         - ironic-standalone-anaconda
+        - ironic-standalone-anaconda-2024.2
         - ironic-standalone-anaconda-2024.1
-        - ironic-standalone-anaconda-2023.2
+        - ironic-standalone-anaconda-2023.2:
+            voting: false
         - ironic-standalone-anaconda-2023.1:
             voting: false
         - ironic-standalone-redfish
+        - ironic-standalone-redfish-2024.2
         - ironic-standalone-redfish-2024.1
-        - ironic-standalone-redfish-2023.2
+        - ironic-standalone-redfish-2023.2:
+            voting: false
         - ironic-standalone-redfish-2023.1:
             voting: false
         # NOTE(dtantsur): inspector is deprecated and rarely sees any changes,
         # no point in running many jobs
         - ironic-inspector-tempest
+        - ironic-inspector-tempest-2024.2:
+            voting: false
         - ironic-inspector-tempest-2024.1:
             voting: false
         # NOTE(dtantsur): these jobs cover rarely changed tests and are quite
@@ -40,6 +50,8 @@
         # NOTE(TheJulia): Except this first one so we can validate fixes to
         # the base tests as we make them.
         - ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode
+        - ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-2024.2:
+            voting: false
         - ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-2024.1:
             voting: false
         - ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-2023.2:
@@ -51,17 +63,17 @@
     gate:
       jobs:
         - ironic-standalone
+        - ironic-standalone-2024.2
         - ironic-standalone-2024.1
-        - ironic-standalone-2023.2
         - ironic-tempest-functional-python3
+        - ironic-tempest-functional-python3-2024.2
         - ironic-tempest-functional-python3-2024.1
-        - ironic-tempest-functional-python3-2023.2
+        - ironic-tempest-functional-rbac-scope-enforced-2024.2
         - ironic-tempest-functional-rbac-scope-enforced-2024.1
-        - ironic-tempest-functional-rbac-scope-enforced-2023.2
         - ironic-standalone-anaconda
+        - ironic-standalone-anaconda-2024.2
         - ironic-standalone-anaconda-2024.1
-        - ironic-standalone-anaconda-2023.2
         - ironic-standalone-redfish
+        - ironic-standalone-redfish-2024.2
         - ironic-standalone-redfish-2024.1
-        - ironic-standalone-redfish-2023.2
         - ironic-inspector-tempest
diff --git a/zuul.d/stable-jobs.yaml b/zuul.d/stable-jobs.yaml
index 1104540..87c6a7f 100644
--- a/zuul.d/stable-jobs.yaml
+++ b/zuul.d/stable-jobs.yaml
@@ -1,4 +1,9 @@
 - job:
+    name: ironic-standalone-2024.2
+    parent: ironic-standalone
+    override-checkout: stable/2024.2
+
+- job:
     name: ironic-standalone-2024.1
     parent: ironic-standalone
     override-checkout: stable/2024.1
@@ -14,6 +19,11 @@
     override-checkout: stable/2023.1
 
 - job:
+    name: ironic-standalone-redfish-2024.2
+    parent: ironic-standalone
+    override-checkout: stable/2024.2
+
+- job:
     name: ironic-standalone-redfish-2024.1
     parent: ironic-standalone
     override-checkout: stable/2024.1
@@ -29,6 +39,11 @@
     override-checkout: stable/2023.1
 
 - job:
+    name: ironic-standalone-anaconda-2024.2
+    parent: ironic-standalone-anaconda
+    override-checkout: stable/2024.2
+
+- job:
     name: ironic-standalone-anaconda-2024.1
     parent: ironic-standalone-anaconda
     override-checkout: stable/2024.1
@@ -44,6 +59,11 @@
     override-checkout: stable/2023.1
 
 - job:
+    name: ironic-tempest-functional-python3-2024.2
+    parent: ironic-tempest-functional-python3
+    override-checkout: stable/2024.2
+
+- job:
     name: ironic-tempest-functional-python3-2024.1
     parent: ironic-tempest-functional-python3
     override-checkout: stable/2024.1
@@ -59,6 +79,11 @@
     override-checkout: stable/2023.1
 
 - job:
+    name: ironic-tempest-functional-rbac-scope-enforced-2024.2
+    parent: ironic-tempest-functional-rbac-scope-enforced
+    override-checkout: stable/2024.2
+
+- job:
     name: ironic-tempest-functional-rbac-scope-enforced-2024.1
     parent: ironic-tempest-functional-rbac-scope-enforced
     override-checkout: stable/2024.1
@@ -74,6 +99,11 @@
     override-checkout: stable/2023.1
 
 - job:
+    name: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-2024.2
+    parent: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode
+    override-checkout: stable/2024.2
+
+- job:
     name: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-2024.1
     parent: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode
     override-checkout: stable/2024.1
@@ -89,6 +119,11 @@
     override-checkout: stable/2023.1
 
 - job:
+    name: ironic-inspector-tempest-2024.2
+    parent: ironic-inspector-tempest
+    override-checkout: stable/2024.2
+
+- job:
     name: ironic-inspector-tempest-2024.1
     parent: ironic-inspector-tempest
     override-checkout: stable/2024.1