def database_upgrade_retry(request, context, database): can_do_upgrade, error = database.can_do_upgrade_retry() if can_do_upgrade: source_plan = database.databaseinfra.plan upgrades = database.upgrades.filter(source_plan=source_plan) last_upgrade = upgrades.last() if not last_upgrade: error = "Database does not have upgrades from {} {}!".format( source_plan.engine.engine_type, source_plan.engine.version ) elif not last_upgrade.is_status_error: error = "Cannot do retry, last upgrade status is '{}'!".format( last_upgrade.get_status_display() ) else: since_step = last_upgrade.current_step if error: messages.add_message(request, messages.ERROR, error) else: TaskRegister.database_upgrade( database=database, user=request.user, since_step=since_step ) return HttpResponseRedirect( reverse('admin:logical_database_resizes', kwargs={'id': database.id}) )
def database_upgrade_retry(request, context, database): can_do_upgrade, error = database.can_do_upgrade_retry() if can_do_upgrade: source_plan = database.databaseinfra.plan upgrades = database.upgrades.filter(source_plan=source_plan) last_upgrade = upgrades.last() if not last_upgrade: error = "Database does not have upgrades from {} {}!".format( source_plan.engine.engine_type, source_plan.engine.version ) elif not last_upgrade.is_status_error: error = "Cannot do retry, last upgrade status is '{}'!".format( last_upgrade.get_status_display() ) else: since_step = last_upgrade.current_step if error: messages.add_message(request, messages.ERROR, error) else: TaskRegister.database_upgrade( database=database, user=request.user, since_step=since_step ) return HttpResponseRedirect( reverse('admin:logical_database_resizes', kwargs={'id': database.id}) )
def database_upgrade(request, context, database): can_do_upgrade, error = database.can_do_upgrade() if not can_do_upgrade: messages.add_message(request, messages.ERROR, error) else: TaskRegister.database_upgrade(database=database, user=request.user) return HttpResponseRedirect( reverse('admin:logical_database_resizes', kwargs={'id': database.id}))
def database_upgrade(request, context, database): can_do_upgrade, error = database.can_do_upgrade() if not can_do_upgrade: messages.add_message(request, messages.ERROR, error) else: TaskRegister.database_upgrade( database=database, user=request.user ) return HttpResponseRedirect( reverse('admin:logical_database_resizes', kwargs={'id': database.id}) )
def execute(self): status, message = self.check_database_status() if not status: raise exceptions.DatabaseNotAvailable(message) self.task_params = dict(database=self.database, user=self.request.user) if not self.database.infra.plan.engine_equivalent_plan: raise exceptions.DatabaseUpgradePlanNotFound( "Source plan do not has equivalent plan to upgrade.") if self.retry: since_step = self.manager.current_step self.task_params['since_step'] = since_step TaskRegister.database_upgrade(**self.task_params)