]> Frank Brehm's Git Trees - pixelpark/create-terraform.git/commitdiff
Bugfixing in lib/cr_tf/terraform/vm.py
authorFrank Brehm <frank.brehm@pixelpark.com>
Thu, 16 May 2024 14:32:11 +0000 (16:32 +0200)
committerFrank Brehm <frank.brehm@pixelpark.com>
Thu, 16 May 2024 14:32:11 +0000 (16:32 +0200)
example/.gitignore
lib/cr_tf/terraform/vm.py
locale/en_US/LC_MESSAGES/create_terraform.po

index fd8e7bb29833f4b82da28c9da2a48c4e5fa57e26..55d870d6af8166a90a373fc27bc1fa75ed4112f4 100644 (file)
@@ -2,3 +2,4 @@
 *repo01*
 dev-deploy*
 really-blank*
+test-db_cluster
index cb8974749f4236cc382726668faa3ecbcbff95ef..3668bf717197811d4913a6867220f38b94314b22 100644 (file)
@@ -38,7 +38,7 @@ from .disk import TerraformDisk, TerraformDiskDict
 
 from .interface import TerraformInterface
 
-__version__ = '1.7.0'
+__version__ = '1.7.1'
 
 LOG = logging.getLogger(__name__)
 
@@ -446,6 +446,8 @@ class TerraformVm(HandlingObject):
 
         max_disks = TerraformDisk.max_scsi_disks
 
+        LOG.debug(_("Evaluating disk data of VM {!r} ...").format(vm.name))
+
         if cls.re_key_root_disk.search(key):
             if isinstance(value, Mapping):
                 for (p_key, p_val) in value.items():
@@ -458,7 +460,7 @@ class TerraformVm(HandlingObject):
             return True
 
         if cls.re_key_data_disk.search(key):
-            unit_number = cls._get_disk_unit(1)
+            unit_number = vm._get_disk_unit(1)
             if isinstance(value, Mapping):
                 vm._add_data_disk(value, 'disk1', unit_number)
             elif value is None:
@@ -480,11 +482,11 @@ class TerraformVm(HandlingObject):
                 if total_disks > max_disks:
                     raise TerraformVmTooManyDisksError(total_disks, max_disks)
 
-                # unit_number = cls._get_disk_unit(current_disk)
+                # unit_number = vm._get_disk_unit(current_disk)
 
-                name = "disk{}".format(current_disk)
                 for disk_data in value:
-                    unit_number = cls._get_disk_unit(current_disk)
+                    name = "disk{}".format(current_disk)
+                    unit_number = vm._get_disk_unit(current_disk)
                     vm._add_data_disk(disk_data, name, unit_number)
                     current_disk += 1
             elif value is None:
@@ -494,6 +496,9 @@ class TerraformVm(HandlingObject):
                 LOG.error(_("Could not evaluate data disks from {!r}.").format(value))
             return True
 
+        LOG.debug(_("The VM {vm!r} has {nrd} disks and {nrc} SCSI controllers.").format(
+            vm=vm.name, nrd=len(vm.disks), nrc=vm.disks.get_ctrlr_count()))
+
         return False
 
     # -------------------------------------------------------------------------
@@ -1399,24 +1404,30 @@ class TerraformVm(HandlingObject):
         disk = TerraformDisk(**params)
         disk.initialized = True
         if self.verbose > 2:
-            LOG.debug(_("Got data disk:") + "\n" + pp(disk.as_dict()))
+            LOG.debug(_("Got data disk {!r}:").format(name) + "\n" + pp(disk.as_dict()))
         self.disks[name] = disk
 
     # -------------------------------------------------------------------------
-    @classmethod
-    def _get_disk_unit(cls, current_disk=0):
+    def _get_disk_unit(self, current_disk_nr=0):
         """Tries to evaluate the disk_unit my the current number in the list."""
         disks_per_ctrlr = TerraformDisk.disks_per_scsi_ctrlr
         max_scsi_ctrlrs = TerraformDisk.max_scsi_ctrlrs
         max_disks = TerraformDisk.max_scsi_disks
 
-        if current_disk >= max_disks:
-            raise TerraformVmTooManyDisksError(current_disk + 1, max_disks)
+        if self.verbose > 2:
+            LOG.debug(_("Trying to get unit_id of disk number {}.").format(current_disk_nr))
+
+        if current_disk_nr >= max_disks:
+            raise TerraformVmTooManyDisksError(current_disk_nr + 1, max_disks)
 
-        ctrlr_id = current_disk % max_scsi_ctrlrs
-        id_offset = current_disk // max_scsi_ctrlrs
+        ctrlr_id = current_disk_nr % max_scsi_ctrlrs
+        id_offset = current_disk_nr // max_scsi_ctrlrs
         unit_id = ctrlr_id * disks_per_ctrlr + id_offset
 
+        if self.verbose > 1:
+            LOG.debug(_("Got unit_id {id} for disk number {nr} (controller ID {cid}).").format(
+                id=unit_id, nr=current_disk_nr, cid=ctrlr_id))
+
         return unit_id
 
 
index 5554d555cae2ea7e0ed06b3b932b2ace33af2e06..5b921d6d9ef71fce83e4776b3a75090e9a7c9092 100644 (file)
@@ -1812,7 +1812,7 @@ msgstr ""
 
 #: lib/cr_tf/vs_config.py:379
 msgid "Checking validity of {o}-object {n!r} ..."
-msgstr "Checking for {o}{m!r} …"
+msgstr "Checking validity of {o}-object {n!r} …"
 
 #: lib/cr_tf/vs_config.py:390
 msgid "Attribute {a!r} of the {o}-object {n!r} is not set."