def get_and_save_migrate_status(self, user, restore_id): migrate_record = migrate_repo.get_by_restore_id(restore_id) if not migrate_record: return 404, "无此记录", None if migrate_record.status == "starting": data = region_api.get_apps_migrate_status(migrate_record.migrate_region, migrate_record.migrate_team, migrate_record.backup_id, restore_id) bean = data["bean"] logger.debug('===========>{0}'.format(bean)) status = bean["status"] service_change = bean["service_change"] logger.debug("service change : {0}".format(service_change)) metadata = bean["metadata"] migrate_team = team_repo.get_tenant_by_tenant_name(migrate_record.migrate_team) if status == "success": with transaction.atomic(): try: self.save_data(migrate_team, migrate_record.migrate_region, user, service_change, json.loads(metadata), migrate_record.group_id) except Exception as e: migrate_record.status = "failed" migrate_record.save() raise e if migrate_record.migrate_type == "recover": # 如果为恢复操作,将原有备份和迁移的记录的组信息修改 backup_record_repo.get_record_by_group_id(migrate_record.original_group_id).update( group_id=migrate_record.group_id) self.update_migrate_original_group_id(migrate_record.original_group_id, migrate_record.group_id) migrate_record.status = status migrate_record.save() return 200, "success", migrate_record
def get_group_backup_status_by_group_id(self, tenant, region, group_id): backup_records = backup_record_repo.get_record_by_group_id(group_id) if not backup_records: return 404, "该组没有任何备份记录", None group_uuid = backup_records[0].group_uuid event_id_record_map = {record.event_id: record for record in backup_records} body = region_api.get_backup_status_by_group_id(region, tenant.tenant_name, group_uuid) res_list = body["list"] for data in res_list: backup_record = event_id_record_map.get(data["event_id"], None) if backup_record and backup_record.status == "starting": backup_record.status = data["status"] backup_record.source_dir = data["source_dir"] backup_record.backup_size = data["backup_size"] backup_record.save() backup_records = backup_record_repo.get_record_by_group_id(group_id) return 200, "success", backup_records
def delete_group_no_service(self, group_id): if not group_id or group_id < 0: return 400, u"需要删除的组不合法", None backups = backup_record_repo.get_record_by_group_id(group_id) if backups: return 409, u"当前组有备份记录,暂无法删除", None # 删除组 group_repo.delete_group_by_pk(group_id) return 200, u"删除成功", group_id
def delete_group(self, group_id, default_group_id): if not group_id or group_id < 0: return 400, u"需要删除的应用不合法", None backups = backup_record_repo.get_record_by_group_id(group_id) if backups: return 409, u"当前应用有备份记录,暂无法删除", None # 删除应用 group_repo.delete_group_by_pk(group_id) # 删除应用与应用的关系 group_service_relation_repo.update_service_relation(group_id, default_group_id) return 200, u"删除成功", group_id
def delete_group(self, group_id): if not group_id or group_id < 0: return 400, u"需要删除的组不合法", None backups = backup_record_repo.get_record_by_group_id(group_id) if backups: return 409, u"当前组有备份记录,暂无法删除", None # 删除组 group_repo.delete_group_by_pk(group_id) # 删除应用与组的关系 group_service_relation_repo.delete_relation_by_group_id(group_id) compose_repo.delete_group_compose_by_group_id(group_id) return 200, u"删除成功", group_id
def update_backup_record_group_id(self, group_id, new_group_id): """修改Groupid""" backup_record_repo.get_record_by_group_id(group_id).update(group_id=new_group_id)
def get_backup_group_uuid(self, group_id): backup_record = backup_record_repo.get_record_by_group_id(group_id) if backup_record: return backup_record[0].group_uuid return make_uuid()