Skip to content

Commit 32371a4

Browse files
SimonChaumetaTurmoovh-cds
committed
feat(pci-instances): react - implement distant backup creation
ref: #TAPC-3053, #TAPC-4664, #TAPC-4688 Signed-off-by: Simon Chaumet <[email protected]> Co-authored-by: Adrien Turmo <[email protected]> Co-authored-by: CDS Translator Agent <[email protected]>
1 parent 1e2c0fb commit 32371a4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1418
-166
lines changed

packages/manager/apps/pci-instances/package.json

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"type:check": "tsc --noEmit"
1616
},
1717
"dependencies": {
18+
"@hookform/resolvers": "^5.1.1",
1819
"@ovh-ux/manager-common-translations": "^0.19.0",
1920
"@ovh-ux/manager-config": "^8.6.2",
2021
"@ovh-ux/manager-core-api": "^0.18.4",
@@ -27,20 +28,23 @@
2728
"@ovhcloud/ods-common-stencil": "17.2.2",
2829
"@ovhcloud/ods-common-theming": "17.2.2",
2930
"@ovhcloud/ods-components": "17.2.2",
30-
"@ovhcloud/ods-react": "^19.0.1",
31+
"@ovhcloud/ods-react": "^19.1.0",
3132
"@ovhcloud/ods-theme-blue-jeans": "17.2.2",
32-
"@ovhcloud/ods-themes": "^19.0.1",
33+
"@ovhcloud/ods-themes": "^19.1.0",
3334
"@tanstack/react-query": "^5.51.21",
3435
"axios": "^1.6.0",
3536
"clsx": "^2.1.1",
37+
"date-fns": "^4.1.0",
3638
"element-internals-polyfill": "^1.3.11",
37-
"i18next": "^23.8.2",
39+
"i18next": "^23.11.5",
3840
"lodash": "^4.17.15",
3941
"lucide-react": "^0.334.0",
4042
"react": "^18.2.0",
4143
"react-dom": "^18.2.0",
44+
"react-hook-form": "^7.59.0",
4245
"react-i18next": "^14.1.2",
43-
"react-router-dom": "^6.3.0"
46+
"react-router-dom": "^6.3.0",
47+
"zod": "^3.25.73"
4448
},
4549
"devDependencies": {
4650
"@ovh-ux/manager-static-analysis-kit": "^0.9.0",
@@ -54,6 +58,7 @@
5458
"msw": "^2.4.9",
5559
"postcss": "^8.4.38",
5660
"tailwindcss": "^3.4.4",
61+
"typescript": "^5.8.3",
5762
"uuid": "^9.0.1",
5863
"vite": "^6.0.7"
5964
},

packages/manager/apps/pci-instances/public/translations/actions/Messages_de_DE.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@
5959
"pci_instances_actions_shelve_instance_nota_message": "(1) Bitte beachten Sie: Für monatlich berechnete Instanzen wird die übliche Abrechnung fortgesetzt, unabhängig vom Status der Dienstleistung.",
6060
"pci_instances_actions_instance_unavailable_action_error_message": "Diese Aktion ist für Ihre Instanz {{ name }} nicht verfügbar",
6161
"pci_instances_actions_instance_success_message": "Der Status Ihrer Instanz {{ name }} wurde aktualisiert.",
62+
"pci_instances_actions_backup_instance_distant_label": "Ein Remote-Backup hinzufügen (optional)",
63+
"pci_instances_actions_backup_instance_distant_name_label": "Name des Remote-Backups",
64+
"pci_instances_actions_backup_instance_distant_region_label": "Wählen Sie einen Standort aus.",
65+
"pci_instances_actions_backup_instance_distant_region_price": "Jedes Backup wird berechnet: ~{{price}}/Monat/GB",
66+
"pci_instances_actions_backup_instance_region_enable_warning": "Der ausgewählte Standort ist nicht aktiviert. Wenn Sie auf „Bestätigen“ klicken, wird er Ihrem Projekt hinzugefügt.",
67+
"pci_instances_actions_backup_instance_with_distant_success_message": "Das Backup {{ name }} wird erstellt. Sobald dieses lokale Backup erstellt wurde, erstellen wir das Remote-Backup mit dem Namen {{ distantName }}. Um sich den Status und die Details des Vorgangs anzusehen, wechseln Sie zur Seite <InstanceBackupLink>Instance Backup</InstanceBackupLink>. Wenn das Backup nicht sofort angezeigt wird, können Sie Ihre Seite aktualisieren, damit auch die Liste aktualisiert wird.",
6268
"pci_instances_actions_instance_network_change_dns": "DNS Reverse ändern",
6369
"pci_instances_actions_instance_network_activate_mitigation": "Schutz aktivieren/deaktivieren",
6470
"pci_instances_actions_instance_network_firewall_settings": "Firewall konfigurieren",

packages/manager/apps/pci-instances/public/translations/actions/Messages_en_GB.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@
5959
"pci_instances_actions_shelve_instance_nota_message": "(1) Warning: For instances billed monthly, standard billing will continue regardless of the service status.",
6060
"pci_instances_actions_instance_unavailable_action_error_message": "This action is not available for the {{ name }} instance.",
6161
"pci_instances_actions_instance_success_message": "The status of your {{ name }} instance has been updated",
62+
"pci_instances_actions_backup_instance_distant_label": "Add a remote backup (Option)",
63+
"pci_instances_actions_backup_instance_distant_name_label": "Remote backup name",
64+
"pci_instances_actions_backup_instance_distant_region_label": "Select a region",
65+
"pci_instances_actions_backup_instance_distant_region_price": "Each backup will be billed at: ~{{price}}/month/GB",
66+
"pci_instances_actions_backup_instance_region_enable_warning": "The selected location is not currently active. Click ‘confirm’ to add it to your project.",
67+
"pci_instances_actions_backup_instance_with_distant_success_message": "Creating {{ name }} backup. Once the local backup is created, we will create a remote backup and rename it {{ distantName }}. To view the status and details of the operation, please go to the <InstanceBackupLink>Instance Backup</InstanceBackupLink> page. If the backup doesn’t appear right away, please refresh the page to update list.",
6268
"pci_instances_actions_instance_network_change_dns": "Change reverse DNS",
6369
"pci_instances_actions_instance_network_activate_mitigation": "Enable/Disable mitigation ",
6470
"pci_instances_actions_instance_network_firewall_settings": "Configure the firewall ",

packages/manager/apps/pci-instances/public/translations/actions/Messages_es_ES.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@
5959
"pci_instances_actions_shelve_instance_nota_message": "(1) Atención: En el caso de las instancias con facturación mensual, la facturación clásica seguirá aplicándose independientemente del estado del servicio.",
6060
"pci_instances_actions_instance_unavailable_action_error_message": "Esta acción no está disponible para su instancia {{ name }}",
6161
"pci_instances_actions_instance_success_message": "El estado de su instancia {{ name }} se ha actualizado correctamente",
62+
"pci_instances_actions_backup_instance_distant_label": "Añadir un backup remoto (opcional)",
63+
"pci_instances_actions_backup_instance_distant_name_label": "Nombre del backup remoto",
64+
"pci_instances_actions_backup_instance_distant_region_label": "Seleccione una localización",
65+
"pci_instances_actions_backup_instance_distant_region_price": "Cada backup tiene un precio de: ~{{ price }}/mes/GB",
66+
"pci_instances_actions_backup_instance_region_enable_warning": "La localización seleccionada no está activada. Al hacer clic en «Confirmar», se añadirá a su proyecto.",
67+
"pci_instances_actions_backup_instance_with_distant_success_message": "Creando el backup {{ name }}... Una vez creado el backup local, procederemos a crear el backup remoto denominado {{ distantName }}. Para consultar el estado y los detalles de la operación, acceda a la página <InstanceBackupLink>Instance Backup</InstanceBackupLink>. Si el backup no aparece inmediatamente, recargue la página para actualizar la lista.",
6268
"pci_instances_actions_instance_network_change_dns": "Cambiar el registro DNS inverso",
6369
"pci_instances_actions_instance_network_activate_mitigation": "Activar/Desactivar la mitigación",
6470
"pci_instances_actions_instance_network_firewall_settings": "Configurar el firewall",

packages/manager/apps/pci-instances/public/translations/actions/Messages_fr_CA.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,15 @@
3535
"pci_instances_actions_backup_instance_title": "Création d'un backup",
3636
"pci_instances_actions_backup_instance_name_label": "Saisissez le nom de votre backup :",
3737
"pci_instances_actions_backup_instance_price": "Prix : ~{{price}}/mois/Go",
38+
"pci_instances_actions_backup_instance_distant_label": "Ajouter un backup distant (Option)",
39+
"pci_instances_actions_backup_instance_distant_name_label": "Nom du backup distant",
40+
"pci_instances_actions_backup_instance_distant_region_label": "Sélectionnez une localisation",
41+
"pci_instances_actions_backup_instance_distant_region_price": "Chaque sauvegarde sera facturée : ~{{price}}/mois/Go",
42+
"pci_instances_actions_backup_instance_region_enable_warning": "La localisation sélectionnée n’est pas activée. En cliquant sur \"confirmer\" vous l'ajouterez à votre projet.",
3843
"pci_instances_actions_backup_instance_warning_message": "Votre instance sera suspendue pendant quelques secondes, puis les performances en lecture/écriture du disque pourront être affectées jusqu'à la finalisation du backup",
3944
"pci_instances_actions_backup_instance_error_message": "Une erreur est survenue lors de la sauvegarde de l'instance {{ name }} : {{ error }}",
4045
"pci_instances_actions_backup_instance_success_message": "Le backup {{ name }} est en cours de création.",
46+
"pci_instances_actions_backup_instance_with_distant_success_message": "Le backup {{ name }} est en cours de création. Une fois ce backup local créé, nous procéderons à la création du backup distant nommé {{ distantName }}. Pour visualiser le statut et les détails de l'opération, veuillez vous rendre sur la page <InstanceBackupLink>Instance Backup</InstanceBackupLink>. Si le backup ne s'affiche pas immédiatement, n'hésitez pas à rafraîchir votre page pour mettre à jour la liste.",
4147
"pci_instances_actions_billing_monthly_activate_instance_title": "Passer au forfait mensuel",
4248
"pci_instances_actions_billing_monthly_activate_instance_confirmation_message": "<0>Réduisez le montant de votre facture en passant votre instance au forfait mensuel.</0> <1>Voir les prix</1>",
4349
"pci_instances_actions_billing_monthly_activate_instance_warning_message": "Votre instance sera suspendue pendant quelques secondes, puis les performances en lecture/écriture du disque pourront être affectées jusqu'à la finalisation du backup",

packages/manager/apps/pci-instances/public/translations/actions/Messages_fr_FR.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,15 @@
3535
"pci_instances_actions_backup_instance_title": "Création d'un backup",
3636
"pci_instances_actions_backup_instance_name_label": "Saisissez le nom de votre backup :",
3737
"pci_instances_actions_backup_instance_price": "Prix : ~{{price}}/mois/Go",
38+
"pci_instances_actions_backup_instance_distant_label": "Ajouter un backup distant (Option)",
39+
"pci_instances_actions_backup_instance_distant_name_label": "Nom du backup distant",
40+
"pci_instances_actions_backup_instance_distant_region_label": "Sélectionnez une localisation",
41+
"pci_instances_actions_backup_instance_distant_region_price": "Chaque sauvegarde sera facturée : ~{{price}}/mois/Go",
42+
"pci_instances_actions_backup_instance_region_enable_warning": "La localisation sélectionnée n’est pas activée. En cliquant sur \"confirmer\" vous l'ajouterez à votre projet.",
3843
"pci_instances_actions_backup_instance_warning_message": "Votre instance sera suspendue pendant quelques secondes, puis les performances en lecture/écriture du disque pourront être affectées jusqu'à la finalisation du backup",
3944
"pci_instances_actions_backup_instance_error_message": "Une erreur est survenue lors de la sauvegarde de l'instance {{ name }} : {{ error }}",
4045
"pci_instances_actions_backup_instance_success_message": "Le backup {{ name }} est en cours de création.",
46+
"pci_instances_actions_backup_instance_with_distant_success_message": "Le backup {{ name }} est en cours de création. Une fois ce backup local créé, nous procéderons à la création du backup distant nommé {{ distantName }}. Pour visualiser le statut et les détails de l'opération, veuillez vous rendre sur la page <InstanceBackupLink>Instance Backup</InstanceBackupLink>. Si le backup ne s'affiche pas immédiatement, n'hésitez pas à rafraîchir votre page pour mettre à jour la liste.",
4147
"pci_instances_actions_billing_monthly_activate_instance_title": "Passer au forfait mensuel",
4248
"pci_instances_actions_billing_monthly_activate_instance_confirmation_message": "<0>Réduisez le montant de votre facture en passant votre instance au forfait mensuel.</0> <1>Voir les prix</1>",
4349
"pci_instances_actions_billing_monthly_activate_instance_warning_message": "Votre instance sera suspendue pendant quelques secondes, puis les performances en lecture/écriture du disque pourront être affectées jusqu'à la finalisation du backup",

packages/manager/apps/pci-instances/public/translations/actions/Messages_it_IT.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@
5959
"pci_instances_actions_shelve_instance_nota_message": "(1) Attenzione: per le istanze con fatturazione mensile, la fatturazione classica continuerà a essere applicata indipendentemente dallo stato del servizio.",
6060
"pci_instances_actions_instance_unavailable_action_error_message": "Questa azione non è disponibile per l’istanza {{ name }}",
6161
"pci_instances_actions_instance_success_message": "Lo stato della tua istanza {{ name }} è stato aggiornato correttamente.",
62+
"pci_instances_actions_backup_instance_distant_label": "Aggiungere un backup remoto (opzionale)",
63+
"pci_instances_actions_backup_instance_distant_name_label": "Nome del backup remoto",
64+
"pci_instances_actions_backup_instance_distant_region_label": "Seleziona una localizzazione",
65+
"pci_instances_actions_backup_instance_distant_region_price": "Ogni backup viene fatturato ~{{price}} +IVA/mese/GB",
66+
"pci_instances_actions_backup_instance_region_enable_warning": "La localizzazione selezionata non è attivata. Cliccando su \"Confermare\" la aggiungerai al tuo progetto.",
67+
"pci_instances_actions_backup_instance_with_distant_success_message": "Creazione del backup {{ name }} in corso. Una volta creato il backup locale, procederemo alla creazione del backup remoto {{ distantName }}. Per visualizzare lo stato e i dettagli dell'operazione, accedi alla pagina <InstanceBackupLink>Instance Backup</InstanceBackupLink>. Se il backup non compare immediatamente, fai il refresh della pagina per aggiornare la lista.",
6268
"pci_instances_actions_instance_network_change_dns": "Modifica il reverse DNS ",
6369
"pci_instances_actions_instance_network_activate_mitigation": "Attiva/Disattiva la mitigazione",
6470
"pci_instances_actions_instance_network_firewall_settings": "Configura il firewall",

packages/manager/apps/pci-instances/public/translations/actions/Messages_pl_PL.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@
5959
"pci_instances_actions_shelve_instance_nota_message": "(1) Uwaga: w przypadku instancji rozliczanych w trybie miesięcznym, będą one nadal fakturowane zgodnie z tym trybem, niezależnie od statusu usługi.",
6060
"pci_instances_actions_instance_unavailable_action_error_message": "Ta operacja nie jest dostępna dla instancji {{name}}",
6161
"pci_instances_actions_instance_success_message": "Status instancji {{name}} został zaktualizowany",
62+
"pci_instances_actions_backup_instance_distant_label": "Dodaj zdalny backup (opcjonalnie)",
63+
"pci_instances_actions_backup_instance_distant_name_label": "Nazwa zdalnego backupu",
64+
"pci_instances_actions_backup_instance_distant_region_label": "Wybierz lokalizację",
65+
"pci_instances_actions_backup_instance_distant_region_price": "Każda kopia zapasowa będzie płatna: ~{{price}}/m-c/GB",
66+
"pci_instances_actions_backup_instance_region_enable_warning": "Wybrana lokalizacja nie jest aktywna. Klikając „Zatwierdź”, dodasz ją do swojego projektu.",
67+
"pci_instances_actions_backup_instance_with_distant_success_message": "Trwa tworzenie kopii zapasowej {{name}}. Po utworzeniu lokalnego backupu utworzymy backup zdalny {{distantName}}. Aby sprawdzić status i szczegóły operacji, przejdź do strony <InstanceBackupLink> Instance Backup</InstanceBackupLink>. Jeśli kopia zapasowa nie wyświetla się natychmiast, odśwież stronę, aby zaktualizować listę.",
6268
"pci_instances_actions_instance_network_change_dns": "Zmień rewers DNS",
6369
"pci_instances_actions_instance_network_activate_mitigation": "Włącz/Wyłącz mitygację",
6470
"pci_instances_actions_instance_network_firewall_settings": "Konfiguracja zapory",

packages/manager/apps/pci-instances/public/translations/actions/Messages_pt_PT.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@
5959
"pci_instances_actions_shelve_instance_nota_message": "(1) Atenção: Para as instâncias com faturação mensal, a faturação clássica continuará a ser aplicada independentemente do estado do serviço.",
6060
"pci_instances_actions_instance_unavailable_action_error_message": "Esta ação não está disponível para a sua instância {{ name }}",
6161
"pci_instances_actions_instance_success_message": "O estado da sua instância {{ name }} foi atualizado",
62+
"pci_instances_actions_backup_instance_distant_label": "Adicionar um backup remoto (opcional)",
63+
"pci_instances_actions_backup_instance_distant_name_label": "Nome do backup remoto",
64+
"pci_instances_actions_backup_instance_distant_region_label": "Selecione uma localização",
65+
"pci_instances_actions_backup_instance_distant_region_price": "Cada backup será faturado: ~{{price}}/mês por GB",
66+
"pci_instances_actions_backup_instance_region_enable_warning": "A localização escolhida não está ativada. Ao clicar em \"Confirmar\", será adicionado ao seu projeto.",
67+
"pci_instances_actions_backup_instance_with_distant_success_message": "O backup {{ name }} está a ser criado. Uma vez criado este backup local, procederemos à criação do backup remoto designado {{ distantName }}. Para visualizar o estado e os detalhes da operação, aceda à página <InstanceBackupLink> Instance Backup</InstanceBackupLink>. Se o backup não for apresentado imediatamente, não hesite em atualizar a página para obter a lista mais recente.",
6268
"pci_instances_actions_instance_network_change_dns": "Alterar a reverse DNS",
6369
"pci_instances_actions_instance_network_activate_mitigation": "Ativar/Desativar a mitigação",
6470
"pci_instances_actions_instance_network_firewall_settings": "Configurar a firewall",

packages/manager/apps/pci-instances/public/translations/list/Messages_de_DE.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,7 @@
2626
"pci_instances_list_action_unrescue": "Rescue-Modus verlassen",
2727
"pci_instances_list_action_soft_reboot": "Soft Reboot durchführen",
2828
"pci_instances_list_action_hard_reboot": "Hard Reboot durchführen",
29-
"pci_instances_list_action_reinstall": "Neu installieren"
29+
"pci_instances_list_action_reinstall": "Neu installieren",
30+
"pci_instances_list_column_creation_date": "Erstellungsdatum",
31+
"pci_instances_operations_running": "Die Operation(en) auf der/dem Instanz(en) wird/werden durchgeführt."
3032
}

0 commit comments

Comments
 (0)