From 6333e54f59097ce8ee7b7ce1bf291e9db79410bd Mon Sep 17 00:00:00 2001 From: Massimo <massimo.canonico@uniupo.it> Date: Fri, 4 Oct 2024 15:09:40 +0000 Subject: [PATCH] Update metamanager.py --- easycloud/core/metamanager.py | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/easycloud/core/metamanager.py b/easycloud/core/metamanager.py index 257ccaa..45120cd 100755 --- a/easycloud/core/metamanager.py +++ b/easycloud/core/metamanager.py @@ -155,14 +155,20 @@ class MetaManager(ABC): def print_all_images(self): """ - Print all available images + Print all available images dynamically based on the data available. """ - table_header = ["ID", "Name", "Image ID", "Status"] table_body = self._platform_list_all_images() - SimpleTUI.print_table(table_header, table_body) - if len(self.images) == 0: + + # Dinamicly building the header table with extracted params + if table_body: + table_header = ["Index", "Name", "ID", "Status"] + SimpleTUI.print_table(table_header, table_body) + if len(table_body) == 0: + SimpleTUI.info("There are no images available") + return len(table_body) + else: SimpleTUI.info("There are no images available") - return len(self.images) + return 0 @abstractmethod def _platform_list_all_images(self): @@ -187,12 +193,16 @@ class MetaManager(ABC): """ Print all instance types """ - table_header = ["ID", "Instance Type ID", "vCPUs", "Ram (GB)", "Disk (GB)"] table_body = self._platform_list_all_instance_types() - SimpleTUI.print_table(table_header, table_body) - if len(self.instance_types) == 0: + + if len(table_body) == 0: SimpleTUI.info("There are no instance types available") - return len(self.instance_types) + + # Sets the table header dynamically based on the number of columns in the table body + table_header = ["ID", "Instance Type Name", "vCPUs", "Ram (GB)", "Disk (GB)"] + SimpleTUI.print_table(table_header, table_body) + + return len(table_body) @abstractmethod def _platform_list_all_instance_types(self): @@ -380,6 +390,7 @@ class MetaManager(ABC): regex="^[a-zA-Z0-9_-]+$") if instance_name is None: return + # 2. Image image_index = SimpleTUI.list_dialog("Images available", self.print_all_images, @@ -387,6 +398,7 @@ class MetaManager(ABC): if image_index is None: return image = self.images[image_index - 1] + # 3. Instance Type instance_type_index = SimpleTUI.list_dialog("Instance types available", self.print_all_instance_types, @@ -394,9 +406,11 @@ class MetaManager(ABC): if instance_type_index is None: return instance_type = self.instance_types[instance_type_index - 1] + # 4. Optional steps (depending on the manager) and creation try: - if self._platform_create_new_instance(instance_name, image, instance_type, monitor_cmd_queue=self.monitor_cmd_queue): + if self._platform_create_new_instance(instance_name, image, instance_type, + monitor_cmd_queue=self.monitor_cmd_queue): SimpleTUI.msg_dialog("Instance creation", "Instance created!", SimpleTUI.DIALOG_SUCCESS) else: SimpleTUI.msg_dialog("Instance creation", "There was an error while creating this instance!\n", -- GitLab