]> git-server-git.apps.pok.os.sepia.ceph.com Git - teuthology.git/commitdiff
fog: Verify reimaged machine OS 1851/head
authorZack Cerza <zack@redhat.com>
Thu, 18 May 2023 00:12:13 +0000 (18:12 -0600)
committerZack Cerza <zack@redhat.com>
Fri, 26 May 2023 19:48:45 +0000 (13:48 -0600)
Signed-off-by: Zack Cerza <zack@redhat.com>
teuthology/provision/fog.py
teuthology/provision/test/test_fog.py

index 09cf2346a5501dd10f3bfe187f80a355b46a6a00..04bfab5ea2768cc1bcac5d47b109c1cbc13baad8 100644 (file)
@@ -89,6 +89,7 @@ class FOG(object):
             raise
         self._wait_for_ready()
         self._fix_hostname()
+        self._verify_installed_os()
         self.log.info("Deploy complete!")
 
     def do_request(self, url_suffix, data=None, method='GET', verify=True):
@@ -323,6 +324,19 @@ class FOG(object):
             check_status=False,
         )
 
+    def _verify_installed_os(self):
+        # What we call "CentOS X.Stream", we will see as "CentOS X"
+        os_version = self.os_version.lower()
+        # When we drop support for python 3.8, str.removesuffix() is helpful
+        if os_version.endswith(".stream"):
+            os_version = os_version[:-len(".stream")]
+        if self.remote.os.name.lower() != self.os_type.lower() or \
+                self.remote.os.version.lower() != os_version:
+            raise RuntimeError(
+                f"Expected {self.remote.shortname}'s OS to be {self.os_type} {os_version} but "
+                f"found {self.remote.os.name} {self.remote.os.version}"
+            )
+
     def destroy(self):
         """A no-op; we just leave idle nodes as-is"""
         pass
index f4263d6575a1e6d29c7079e11804628df2bc8e31..2124d7390908137b167ac4de573f8ee17a58fc3e 100644 (file)
@@ -98,6 +98,7 @@ class TestFOG(object):
             cancel_deploy_task=DEFAULT,
             _wait_for_ready=DEFAULT,
             _fix_hostname=DEFAULT,
+            _verify_installed_os=DEFAULT,
         ) as local_mocks:
             local_mocks['get_host_data'].return_value = dict(id=host_id)
             local_mocks['schedule_deploy_task'].return_value = task_id