]> Frank Brehm's Git Trees - pixelpark/create-terraform.git/commitdiff
Fixing import existing VM into terraform
authorFrank Brehm <frank.brehm@pixelpark.com>
Thu, 23 May 2024 16:33:37 +0000 (18:33 +0200)
committerFrank Brehm <frank.brehm@pixelpark.com>
Thu, 23 May 2024 16:33:37 +0000 (18:33 +0200)
lib/create_terraform/handler/__init__.py
lib/create_terraform/handler/vmware.py

index dd54c3d49898651c5caf3aef7df194eee979406d..f1d1f3eac52841f30cfb008167bac32758ca27dd 100644 (file)
@@ -46,7 +46,7 @@ from ..errors import AbortExecution
 
 from ..xlate import XLATOR
 
-__version__ = '4.0.2'
+__version__ = '4.1.0'
 LOG = logging.getLogger(__name__)
 
 _ = XLATOR.gettext
@@ -467,14 +467,23 @@ class CreateTerraformHandler(
 
             for vm in self.existing_vms:
 
-                vs_name = vm.vsphere
+                if self.verbose > 2:
+                    LOG.debug('VM to import:' + '\n' + pp(vm.as_dict()))
+
+                vsphere_name = vm.vsphere
+
                 print()
                 LOG.info(_("Importing VM {!r}.").format(vm.name))
                 vm_obj = 'vsphere_virtual_machine.{}'.format(vm.tf_name)
-                path = '/{dc}/{f}/{p}/{n}'.format(
-                    dc=self.vsphere[vs_name].dc, f=self.vsphere[vs_name].dc_obj.vm_folder,
-                    p=vm.path, n=vm.name)
+                LOG.debug(f'Terraform name of object to import: {vm_obj!r}.')
+                vs_dc = self.vsphere[vsphere_name].dc
+                LOG.debug(f'Datacenter of object to import: {vs_dc!r}.')
+                vs_folder = self.vsphere[vsphere_name].dc_obj.vm_folder
+                LOG.debug(f'Folder of object to import: {vs_folder!r}.')
+                path = '/{dc}/{f}/{p}/{n}'.format(dc=vs_dc, f=vs_folder, p=vm.folder, n=vm.name)
+                LOG.debug(f'Complete path of object to import: {path!r}.')
                 cmd = [str(self.terraform_cmd), 'import', vm_obj, path]
+
                 try:
                     result = self.run(
                         cmd, may_simulate=True, timeout=tf_timeout,
@@ -490,20 +499,6 @@ class CreateTerraformHandler(
 
                 LOG.debug(_("Completed process:") + "\n" + str(result))
 
-#        print()
-#        LOG.info(_("Executing {!r} ...").format('terraform plan'))
-#        cmd = [str(self.terraform_cmd), 'plan']
-#        try:
-#            result = self.run(
-#                cmd, may_simulate=True, timeout=tf_timeout, stdout=PIPE, stderr=PIPE, check=True)
-#        except CalledProcessError as e:
-#            if e.stdout:
-#                print(self.colored("Output", 'AQUA') + ':\n' + to_str(e.stdout))
-#            if e.stderr:
-#                print(self.colored("Error message", ('BOLD', 'RED')) + ':\n' + to_str(e.stderr))
-#            raise ExpectedHandlerError(str(e))
-#        LOG.debug(_("Completed process:") + "\n" + str(result))
-
         goto = Path(os.path.relpath(self.project_dir, self.start_dir))
 
         print()
index 1fbe316810e7db9f4b9c188fd16bc81c01e3511c..3fc514df70da79818f8b68419fac4e9ffdad56a2 100644 (file)
@@ -33,7 +33,7 @@ from ..slim_vm import SlimVm
 
 from ..xlate import XLATOR
 
-__version__ = '0.3.1'
+__version__ = '0.3.2'
 LOG = logging.getLogger(__name__)
 
 _ = XLATOR.gettext
@@ -637,7 +637,8 @@ class CrTfHandlerVmwMixin():
                 LOG.debug(_("Datastore of VM {vm!r}: {ds!r}.").format(vm=vm.name, ds=ds))
                 vm.datastore = ds
                 vm.already_existing = True
-                self.existing_vms.append(existing_vm)
+                vm.vsphere = vsphere_name
+                self.existing_vms.append(vm)
 
             else: