Skip to content

Commit

Permalink
fixup! SDKTECHNO-271: add dockerInfos for sub-apps backup & restore f…
Browse files Browse the repository at this point in the history
…or apps storages
  • Loading branch information
EmilienLeroux committed Oct 11, 2024
1 parent c02e96a commit 2407e76
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def script_backup():
# TODO: define a timeout
init_timeout = 600
timeout = 600
project_id = os.environ["SAAGIE_APP_BACKUP_CURRENT_APP_PROJECT_ID"]
backup_app_project_id = os.environ["SAAGIE_APP_BACKUP_CURRENT_APP_PROJECT_ID"]
finished_status = ["STOPPED", "FAILED", "UNKNOWN"]

APP_BACKUP_VERSION = os.environ.get("APP_BACKUP_VERSION", '2024.04-0.1-1.192.0_SDKTECHNO-271')
Expand Down Expand Up @@ -121,9 +121,9 @@ def script_backup():
# Reset timeout
timeout = init_timeout
# Vérifier si l'app est dans le même projet que l'addOn, déplacer les volumes duppliqués pour les monter sur lapp_tempo sinon
if not app_to_backup_project_id == project_id :
if not app_to_backup_project_id == backup_app_project_id :
logging.info(f"====> Déplacement du volume vers le projet où se trouve l'addOn ...")
move_to = client_saagie.storages.move(storage_id=duplicate_volume_id, target_platform_id=pf, target_project_id=project_id)
move_to = client_saagie.storages.move(storage_id=duplicate_volume_id, target_platform_id=pf, target_project_id=backup_app_project_id)
logging.info(f"retour move new id:{move_to['moveVolume']}")
duplicate_volume_id = move_to['moveVolume']
else :
Expand Down Expand Up @@ -164,27 +164,27 @@ def script_backup():
name="SAAGIE_APP_BACKUP_STORAGE_FOLDER",
value=volume,
description="Path directory on image",
project_id=project_id
project_id=backup_app_project_id
)

client_saagie.env_vars.create_or_update(
scope="PROJECT",
name="SAAGIE_APP_BACKUP_S3_PREFIX",
value=s3_file_prefix,
project_id=project_id
project_id=backup_app_project_id
)
client_saagie.env_vars.create_or_update(
scope="PROJECT",
name="SAAGIE_APP_BACKUP_TMP_APP_PREFIX",
value=backup_tmp_app_prefix,
project_id=project_id
project_id=backup_app_project_id
)
app_name = f"{backup_tmp_app_prefix} {datetime.timestamp(d)}"

# Create the tmp app
logging.info(f"----- Creating the tmp app [{app_name}] in project {project_id}...")
logging.info(f"----- Creating the tmp app [{app_name}] in project {backup_app_project_id}...")
create_app_info = client_saagie.apps.create_from_scratch(
project_id=project_id,
project_id=backup_app_project_id,
app_name=app_name,
image=app_backup_name,
exposed_ports=[
Expand Down Expand Up @@ -238,7 +238,7 @@ def script_backup():

# Delete the duplicated storage
logging.info(f"Deleting the duplicated storage {duplicate_volume_id}")
client_saagie.storages.delete(storage_id=duplicate_volume_id, project_id=project_id)
client_saagie.storages.delete(storage_id=duplicate_volume_id, project_id=backup_app_project_id)

return True

Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ def script_restore():
# TODO: define a timeout
init_timeout = 600
timeout = 600
backup_app_project_id = os.environ["SAAGIE_APP_BACKUP_CURRENT_APP_PROJECT_ID"]
finished_status = ["STOPPED", "FAILED", "UNKNOWN"]
d = datetime.now()
date_backup = d.strftime('%Y-%m-%d')
Expand Down Expand Up @@ -157,7 +158,7 @@ def script_restore():
logging.info(f"===>path : {path}")
logging.info(f"===>path_info : {path_info}")

id_volume = createStorageForRestoring(client_saagie, app_to_restore_project_id, date_backup, restore_date, path, path_info)
id_volume = createStorageForRestoring(client_saagie, backup_app_project_id, date_backup, restore_date, path, path_info)

# for volume in path_info:

Expand Down Expand Up @@ -191,21 +192,21 @@ def script_restore():
name="SAAGIE_APP_RESTORE_STORAGE_FOLDER",
value="/"+path,
description="Path directory on image",
project_id=app_to_restore_project_id
project_id=backup_app_project_id
)

client_saagie.env_vars.create_or_update(
scope="PROJECT",
name="SAAGIE_APP_RESTORE_S3_PREFIX",
value=s3_file_prefix,
project_id=app_to_restore_project_id
project_id=backup_app_project_id
)

client_saagie.env_vars.create_or_update(
scope="PROJECT",
name="SAAGIE_APP_RESTORE_TMP_APP_PREFIX",
value=restore_tmp_app_prefix,
project_id=app_to_restore_project_id
project_id=backup_app_project_id
)


Expand All @@ -214,9 +215,9 @@ def script_restore():
app_name = f"{restore_tmp_app_prefix} {datetime.timestamp(d)}"

# Create the tmp app
logging.info(f"----- Creating the tmp app for restore [{app_name}] in project {app_to_restore_project_id} ...")
logging.info(f"----- Creating the tmp app for restore [{app_name}] in project {backup_app_project_id} ...")
create_app_info = client_saagie.apps.create_from_scratch(
project_id=app_to_restore_project_id,
project_id=backup_app_project_id,
app_name=app_name,
image=app_restore_name,
exposed_ports=[
Expand Down Expand Up @@ -267,15 +268,22 @@ def script_restore():
logging.info(f"Deleting the temporary APP: [{app_name}] with ID [{app_tmp_id}]")
client_saagie.apps.delete(app_tmp_id)

storage_paths.append({"path": "/"+path, "volumeId": id_volume})

logging.info(f"{path} restored for app [{app_id}]")

if not app_to_restore_project_id == backup_app_project_id :
logging.info(f"====> Déplacement du volume vers le projet où se trouve son app ...")
move_to = client_saagie.storages.move(storage_id=id_volume, target_platform_id=pf, target_project_id=app_to_restore_project_id)
logging.info(f"retour move new id:{move_to['moveVolume']}")
id_volume = move_to['moveVolume']
else :
logging.info(f"====> Volume already in the same project as the app to restore...")

storage_paths.append({"path": "/"+path, "volumeId": id_volume})

logging.info(f"Upgrade the app [{app_id}] with the restored volumes {storage_paths}")
response = client_saagie.apps.upgrade(
app_id=app_id,
storage_paths=storage_paths
)
logging.info(f"reponse_upgrade: {response}")

return True

0 comments on commit 2407e76

Please sign in to comment.