From df06845c23bafe7f3becb888552bffcbc21f2036 Mon Sep 17 00:00:00 2001 From: Erkmann Date: Tue, 2 May 2023 10:08:53 -0300 Subject: [PATCH 1/3] AutoUpgrade VM - Set Maintence as error when not implemented --- dbaas/maintenance/task_auto_upgrade_vm_offering.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dbaas/maintenance/task_auto_upgrade_vm_offering.py b/dbaas/maintenance/task_auto_upgrade_vm_offering.py index b9e2a6f85..33da4fc7c 100644 --- a/dbaas/maintenance/task_auto_upgrade_vm_offering.py +++ b/dbaas/maintenance/task_auto_upgrade_vm_offering.py @@ -59,6 +59,7 @@ def create_maintenance(database, task, resize_target, retry_from): def task_auto_upgrade_vm_offering(database, task, retry_from=None, resize_target=None): + auto_upgrade_vm = None try: infra = database.infra driver = infra.get_driver() @@ -113,6 +114,9 @@ def task_auto_upgrade_vm_offering(database, task, retry_from=None, resize_target 'Please check error message and do retry' ) except Exception as erro: + if auto_upgrade_vm is not None: + auto_upgrade_vm.set_error() + task.set_status_error('Error: {erro}.\n' 'To create task task_auto_upgrade_vm!\n' 'Please check error message and start new task.'.format(erro=erro)) From 9ebc78478ced1030d4698f9db6b154c5d7070a95 Mon Sep 17 00:00:00 2001 From: Erkmann Date: Tue, 2 May 2023 10:38:15 -0300 Subject: [PATCH 2/3] AutoConfig - Legenda botao de AutoConfigure --- .../templates/logical/database/details/parameters_tab.html | 1 + 1 file changed, 1 insertion(+) diff --git a/dbaas/logical/templates/logical/database/details/parameters_tab.html b/dbaas/logical/templates/logical/database/details/parameters_tab.html index fe56cc3d1..095d93569 100644 --- a/dbaas/logical/templates/logical/database/details/parameters_tab.html +++ b/dbaas/logical/templates/logical/database/details/parameters_tab.html @@ -7,6 +7,7 @@

Custom Parameters

{% if show_auto_configure_btn %} AutoConfigure DB Params + * Atualiza somente o max_connections (MySQL) e não gera downtime! {% endif %} From 8fea2297fb2318c09c046f3860d5421a61cf0bbe Mon Sep 17 00:00:00 2001 From: Erkmann Date: Fri, 5 May 2023 10:56:41 -0300 Subject: [PATCH 3/3] AutoUpgrade - Create/Destroy DNS for temporary VM --- .../drivers/replication_topologies/mongodb.py | 6 ++-- dbaas/workflow/steps/util/dns.py | 32 +++++++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/dbaas/drivers/replication_topologies/mongodb.py b/dbaas/drivers/replication_topologies/mongodb.py index 4e5ff696c..08ebf2e5d 100644 --- a/dbaas/drivers/replication_topologies/mongodb.py +++ b/dbaas/drivers/replication_topologies/mongodb.py @@ -923,8 +923,8 @@ def get_auto_upgrade_database_vm_offering(self): 'workflow.steps.util.infra.OfferingAutoUpgrade', 'workflow.steps.util.host_provider.AllocateIPTemporaryInstance', 'workflow.steps.util.host_provider.CreateVirtualMachineTemporaryInstance', - # 'workflow.steps.util.dns.CreateDNS', - # 'workflow.steps.util.dns.CheckIsReady', + 'workflow.steps.util.dns.CreateDNSTemporaryInstance', + 'workflow.steps.util.dns.CheckIsReadyTemporaryInstance', 'workflow.steps.util.vm.WaitingBeReadyTemporaryInstance', 'workflow.steps.util.vm.UpdateOSDescriptionTemporaryInstance', )}, { @@ -1006,7 +1006,7 @@ def get_auto_upgrade_database_vm_offering(self): 'workflow.steps.util.volume_provider.DetachDataVolumeTemporaryInstance', 'workflow.steps.util.volume_provider.DestroyVolumeTemporaryInstance', - # 'workflow.steps.util.dns.DestroyDNSTemporaryInstance', + 'workflow.steps.util.dns.DestroyDNSTemporaryInstance', 'workflow.steps.util.host_provider.DestroyVirtualMachineTemporaryInstance', 'workflow.steps.util.host_provider.DestroyIPTemporaryInstance', )} diff --git a/dbaas/workflow/steps/util/dns.py b/dbaas/workflow/steps/util/dns.py index c3f72fc07..461f98d6b 100644 --- a/dbaas/workflow/steps/util/dns.py +++ b/dbaas/workflow/steps/util/dns.py @@ -307,8 +307,26 @@ def undo(self): ) +class CreateDNSTemporaryInstance(CreateDNS): + + def __unicode__(self): + return "Destroying DNS..." + + @property + def is_valid(self): + return self.instance.temporary + + def do(self): + if not self.is_valid: + return + + return super(CreateDNSTemporaryInstance, self).do() + + class DestroyDNSTemporaryInstance(CreateDNS): + + @property def is_valid(self): return self.instance.temporary @@ -420,6 +438,20 @@ def do(self): for instance in self.instance.hostname.instances.all(): self._check_dns_for(instance.dns, self.host.address) + +class CheckIsReadyTemporaryInstance(CheckIsReady): + + @property + def is_valid(self): + return self.instance.temporary + + def do(self): + if not self.is_valid: + return + + return super(CheckIsReadyTemporaryInstance, self).do() + + ''' class CheckVipIsReady(CheckIsReady):