Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(pci-block-storage): add availability zone step for 3AZ region #14406

Merged
merged 3 commits into from
Jan 29, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/manager/apps/pci-block-storage/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
"dependencies": {
"@ovh-ux/manager-config": "^8.0.2",
"@ovh-ux/manager-core-api": "^0.9.0",
"@ovh-ux/manager-pci-common": "^0.14.4",
"@ovh-ux/manager-pci-common": "^0.15.0",
"@ovh-ux/manager-react-components": "^1.43.1",
"@ovh-ux/manager-react-core-application": "^0.11.5",
"@ovh-ux/manager-react-shell-client": "^0.8.5",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,16 @@
"pci_projects_project_storages_blocks_add_type_addon_capacity_max": "maximal {{capacity}}",
"pci_projects_project_storages_blocks_add_type_addon_price": "{{price}} inkl. MwSt. / GB / Stunde",
"pci_projects_project_storages_blocks_add_size_bandwidth": "Bandbreite: {{bandwidth}}",
"pci_projects_project_storages_blocks_add_size_iops": "IOPS: {{iops}}"
"pci_projects_project_storages_blocks_add_size_iops": "IOPS: {{iops}}",
"pci_projects_project_storages_blocks_add_availability_zone": "Verfügbarkeitszone auswählen",
"pci_projects_project_storages_blocks_add_deployment_mode_title": "Bereitstellungsmodus auswählen",
"pci_projects_project_storages_blocks_add_deployment_mode_description": "Wählen Sie eine optimale Konfiguration aus, um die Verfügbarkeit, Resilienz und Latenz zu gewährleisten, die für Ihre Daten am besten geeignet sind. <Link>Mehr erfahren</Link>",
"pci_projects_project_storages_blocks_add_deployment_mode_title_region": "1-AZ Region",
"pci_projects_project_storages_blocks_add_deployment_mode_description_region": "Resiliente und kostengünstige Bereitstellung in 1 Verfügbarkeitszone.",
"pci_projects_project_storages_blocks_add_deployment_mode_title_region-3-az": "3-AZ Region",
"pci_projects_project_storages_blocks_add_deployment_mode_description_region-3-az": "Bereitstellung mit hoher Resilienz/Hochverfügbarkeit für kritische Anwendungen in 3 Verfügbarkeitszonen.",
"pci_projects_project_storages_blocks_add_deployment_mode_title_localzone": "Local Zone",
"pci_projects_project_storages_blocks_add_deployment_mode_description_localzone": "Bereitstellung Ihrer Anwendungen nah an Ihren Benutzern bei geringer Latenz und geringem Datenspeicherbedarf.",
"pci_projects_project_storages_blocks_add_deployment_mode_price_from": "Ab {{price}} zzgl. MwSt./GB/Stunde",
"pci_projects_project_storages_blocks_add_beta_free": "Kostenlos"
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,16 @@
"pci_projects_project_storages_blocks_add_type_addon_iops_guaranteed": "{{iops}} guaranteed IOPS{{separator}} ",
"pci_projects_project_storages_blocks_add_type_addon_iops_not_guaranteed": "Up to {{iops}} IOPS{{separator}} ",
"pci_projects_project_storages_blocks_add_type_addon_capacity_max": "{{capacity}} max",
"pci_projects_project_storages_blocks_add_type_addon_price": "{{price}} ex. VAT/GB/hour"
"pci_projects_project_storages_blocks_add_type_addon_price": "{{price}} ex. VAT/GB/hour",
"pci_projects_project_storages_blocks_add_availability_zone": "Select an availability zone",
"pci_projects_project_storages_blocks_add_deployment_mode_title": "Select a deployment mode",
"pci_projects_project_storages_blocks_add_deployment_mode_description": "Select an optimal configuration to ensure the availability, resilience and latency appropriate for your data depending on your use cases. <Link>Find out more</Link>",
"pci_projects_project_storages_blocks_add_deployment_mode_title_region": "1-AZ Region",
"pci_projects_project_storages_blocks_add_deployment_mode_description_region": "Resilient and cost-effective deployment on 1 availability zone.",
"pci_projects_project_storages_blocks_add_deployment_mode_title_region-3-az": " 3-AZ Region",
"pci_projects_project_storages_blocks_add_deployment_mode_description_region-3-az": "High-resilience/high-availability deployment for your critical applications across 3 availability zones.",
"pci_projects_project_storages_blocks_add_deployment_mode_title_localzone": "Local Zone",
"pci_projects_project_storages_blocks_add_deployment_mode_description_localzone": "Deploy your applications as close as possible to your users, for low latency and data residency.",
"pci_projects_project_storages_blocks_add_deployment_mode_price_from": "From {{price}} ex. VAT/GB/hour",
"pci_projects_project_storages_blocks_add_beta_free": "Free"
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,16 @@
"pci_projects_project_storages_blocks_add_type_addon_iops_guaranteed": "{{iops}} IOPS garantizadas{{separator}} ",
"pci_projects_project_storages_blocks_add_type_addon_iops_not_guaranteed": "Hasta {{iops}} IOPS{{separator}} ",
"pci_projects_project_storages_blocks_add_type_addon_capacity_max": "{{capacity}} máx.",
"pci_projects_project_storages_blocks_add_type_addon_price": "{{price}}/hora + IVA por GB"
"pci_projects_project_storages_blocks_add_type_addon_price": "{{price}}/hora + IVA por GB",
"pci_projects_project_storages_blocks_add_availability_zone": "Seleccione una zona de disponibilidad",
"pci_projects_project_storages_blocks_add_deployment_mode_title": "Seleccione un modo de despliegue",
"pci_projects_project_storages_blocks_add_deployment_mode_description": "Seleccione una configuración óptima para garantizar la disponibilidad, la resiliencia y la latencia adecuadas para sus datos en función de sus necesidades. <Link>Más información</Link>",
"pci_projects_project_storages_blocks_add_deployment_mode_title_region": "Región 1-AZ",
"pci_projects_project_storages_blocks_add_deployment_mode_description_region": "Implementación resiliente y económica en 1 zona de disponibilidad.",
"pci_projects_project_storages_blocks_add_deployment_mode_title_region-3-az": "Región 3-AZ",
"pci_projects_project_storages_blocks_add_deployment_mode_description_region-3-az": "Despliegue de alta resiliencia/alta disponibilidad para sus aplicaciones críticas en 3 zonas de disponibilidad.",
"pci_projects_project_storages_blocks_add_deployment_mode_title_localzone": "Local Zone",
"pci_projects_project_storages_blocks_add_deployment_mode_description_localzone": "Despliegue sus aplicaciones cerca de sus usuarios para una baja latencia y la residencia de los datos.",
"pci_projects_project_storages_blocks_add_deployment_mode_price_from": "A partir de {{price}}/hora + IVA por GB",
"pci_projects_project_storages_blocks_add_beta_free": "Gratis"
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"pci_projects_project_storages_blocks_add_type_addon_iops_not_guaranteed": "Jusqu'à {{iops}} IOPS{{separator}} ",
"pci_projects_project_storages_blocks_add_type_addon_capacity_max": "{{capacity}} max.",
"pci_projects_project_storages_blocks_add_type_addon_price": "{{price}} HT/Go/heure",
"pci_projects_project_storages_blocks_add_availability_zone": "Sélectionnez une zone de disponibilité",
"pci_projects_project_storages_blocks_add_size_title": "Capacité du volume",
"pci_projects_project_storages_blocks_add_size_help": "La taille maximale dépend de votre quota disponible.",
"pci_projects_project_storages_blocks_add_size_unit": "Go",
Expand All @@ -24,5 +25,15 @@
"pci_projects_project_storages_blocks_add_save_form": "Création du volume en cours",
"pci_projects_project_storages_blocks_add_error_query": "Une erreur est survenue lors de la récupération des régions : {{ message }}",
"pci_projects_project_storages_blocks_add_success_message": "Le volume {{volume}} a été ajouté",
"pci_projects_project_storages_blocks_add_error_post": "Une erreur est survenue lors de l'ajout du volume {{ volume }} : {{ message }}"
"pci_projects_project_storages_blocks_add_error_post": "Une erreur est survenue lors de l'ajout du volume {{ volume }} : {{ message }}",
"pci_projects_project_storages_blocks_add_deployment_mode_title": "Sélectionnez un mode de déploiement",
"pci_projects_project_storages_blocks_add_deployment_mode_description": "Sélectionnez une configuration optimale pour assurer la disponibilité, la résilience et la latence appropriées pour vos données selon vos cas d’usage. <Link>En savoir plus</Link>",
"pci_projects_project_storages_blocks_add_deployment_mode_title_region": "Région 1-AZ",
"pci_projects_project_storages_blocks_add_deployment_mode_description_region": "Déploiement résilient et économique sur 1 zone de disponibilité.",
"pci_projects_project_storages_blocks_add_deployment_mode_title_region-3-az": "Région 3-AZ",
"pci_projects_project_storages_blocks_add_deployment_mode_description_region-3-az": "Déploiement haute résilience/haute disponibilité pour vos applications critiques sur 3 zones de disponibilité.",
"pci_projects_project_storages_blocks_add_deployment_mode_title_localzone": "Local Zone",
"pci_projects_project_storages_blocks_add_deployment_mode_description_localzone": "Déploiement de vos applications au plus près de vos utilisatrices et utilisateurs pour une faible latence et la résidence des données.",
"pci_projects_project_storages_blocks_add_deployment_mode_price_from": "A partir de {{price}} HT/Go/heure",
"pci_projects_project_storages_blocks_add_beta_free": "Gratuit"
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"pci_projects_project_storages_blocks_add_type_addon_iops_not_guaranteed": "Jusqu'à {{iops}} IOPS{{separator}} ",
"pci_projects_project_storages_blocks_add_type_addon_capacity_max": "{{capacity}} max.",
"pci_projects_project_storages_blocks_add_type_addon_price": "{{price}} HT/Go/heure",
"pci_projects_project_storages_blocks_add_availability_zone": "Sélectionnez une zone de disponibilité",
"pci_projects_project_storages_blocks_add_size_title": "Capacité du volume",
"pci_projects_project_storages_blocks_add_size_help": "La taille maximale dépend de votre quota disponible.",
"pci_projects_project_storages_blocks_add_size_unit": "Go",
Expand All @@ -24,5 +25,15 @@
"pci_projects_project_storages_blocks_add_save_form": "Création du volume en cours",
"pci_projects_project_storages_blocks_add_error_query": "Une erreur est survenue lors de la récupération des régions : {{ message }}",
"pci_projects_project_storages_blocks_add_success_message": "Le volume {{volume}} a été ajouté",
"pci_projects_project_storages_blocks_add_error_post": "Une erreur est survenue lors de l'ajout du volume {{ volume }} : {{ message }}"
"pci_projects_project_storages_blocks_add_error_post": "Une erreur est survenue lors de l'ajout du volume {{ volume }} : {{ message }}",
"pci_projects_project_storages_blocks_add_deployment_mode_title": "Sélectionnez un mode de déploiement",
"pci_projects_project_storages_blocks_add_deployment_mode_description": "Sélectionnez une configuration optimale pour assurer la disponibilité, la résilience et la latence appropriées pour vos données selon vos cas d’usage. <Link>En savoir plus</Link>",
"pci_projects_project_storages_blocks_add_deployment_mode_title_region": "Région 1-AZ",
"pci_projects_project_storages_blocks_add_deployment_mode_description_region": "Déploiement résilient et économique sur 1 zone de disponibilité.",
"pci_projects_project_storages_blocks_add_deployment_mode_title_region-3-az": "Région 3-AZ",
"pci_projects_project_storages_blocks_add_deployment_mode_description_region-3-az": "Déploiement haute résilience/haute disponibilité pour vos applications critiques sur 3 zones de disponibilité.",
"pci_projects_project_storages_blocks_add_deployment_mode_title_localzone": "Local Zone",
"pci_projects_project_storages_blocks_add_deployment_mode_description_localzone": "Déploiement de vos applications au plus près de vos utilisatrices et utilisateurs pour une faible latence et la résidence des données.",
"pci_projects_project_storages_blocks_add_deployment_mode_price_from": "A partir de {{price}} HT/Go/heure",
"pci_projects_project_storages_blocks_add_beta_free": "Gratuit"
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,16 @@
"pci_projects_project_storages_blocks_add_type_addon_iops_guaranteed": "{{iops}} IOPS garantiti {{separator}} ",
"pci_projects_project_storages_blocks_add_type_addon_iops_not_guaranteed": "Fino a {{iops}} IOPS {{separator}} ",
"pci_projects_project_storages_blocks_add_type_addon_capacity_max": "{{capacity}} max.",
"pci_projects_project_storages_blocks_add_type_addon_price": "{{price}} +IVA/GB/ora"
"pci_projects_project_storages_blocks_add_type_addon_price": "{{price}} +IVA/GB/ora",
"pci_projects_project_storages_blocks_add_availability_zone": "Seleziona un'area di disponibilità",
"pci_projects_project_storages_blocks_add_deployment_mode_title": "Seleziona una modalità di distribuzione",
"pci_projects_project_storages_blocks_add_deployment_mode_description": "Seleziona la configurazione ottimale per garantire la disponibilità, la resilienza e la latenza appropriate per i dati in base alle modalità di utilizzo. <Link>Scopri di più</Link>",
"pci_projects_project_storages_blocks_add_deployment_mode_title_region": "Region 1-AZ",
"pci_projects_project_storages_blocks_add_deployment_mode_description_region": "Installazione resiliente ed economica su 1 zona di disponibilità.",
"pci_projects_project_storages_blocks_add_deployment_mode_title_region-3-az": "Region 3-AZ",
"pci_projects_project_storages_blocks_add_deployment_mode_description_region-3-az": "Installazione ad alta resilienza/high availability per le applicazioni critiche su 3 zone di disponibilità.",
"pci_projects_project_storages_blocks_add_deployment_mode_title_localzone": "Local Zone",
"pci_projects_project_storages_blocks_add_deployment_mode_description_localzone": "Implementazione delle applicazioni il più vicino possibile agli utenti per una latenza ridotta e la residenza dei dati.",
"pci_projects_project_storages_blocks_add_deployment_mode_price_from": "A partire da {{price}} +IVA/GB/ora",
"pci_projects_project_storages_blocks_add_beta_free": "Gratuito"
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,16 @@
"pci_projects_project_storages_blocks_add_type_addon_iops_guaranteed": "Gwarantowana wartość IOPS: {{iops}}{{separator}} ",
"pci_projects_project_storages_blocks_add_type_addon_iops_not_guaranteed": "Do {{iops}} IOPS{{separator}} ",
"pci_projects_project_storages_blocks_add_type_addon_capacity_max": "Maksymalnie {{capacity}}",
"pci_projects_project_storages_blocks_add_type_addon_price": "{{price}} netto/GB/godz."
"pci_projects_project_storages_blocks_add_type_addon_price": "{{price}} netto/GB/godz.",
"pci_projects_project_storages_blocks_add_availability_zone": "Wybierz obszar",
"pci_projects_project_storages_blocks_add_deployment_mode_title": "Wybierz tryb wdrożenia",
"pci_projects_project_storages_blocks_add_deployment_mode_description": "Wybierz optymalną konfigurację, aby zapewnić dostępność, odporność i opóźnienie danych dopasowane do Twoich zastosowań. <Link>Dowiedz się więcej</Link>",
"pci_projects_project_storages_blocks_add_deployment_mode_title_region": "Region 1-AZ",
"pci_projects_project_storages_blocks_add_deployment_mode_description_region": "Odporne i ekonomiczne wdrożenie w 1 strefie dostępności.",
"pci_projects_project_storages_blocks_add_deployment_mode_title_region-3-az": "Region 3-AZ",
"pci_projects_project_storages_blocks_add_deployment_mode_description_region-3-az": "Wdrożenie o wysokiej odporności/dostępności dla krytycznych aplikacji w 3 strefach dostępności.",
"pci_projects_project_storages_blocks_add_deployment_mode_title_localzone": "Local Zone",
"pci_projects_project_storages_blocks_add_deployment_mode_description_localzone": "Wdrażanie aplikacji jak najbliżej użytkowników w celu zminimalizowania czasu odpowiedzi i zapewnienia rezydencji danych.",
"pci_projects_project_storages_blocks_add_deployment_mode_price_from": "Od {{price}} netto/GB/godz",
"pci_projects_project_storages_blocks_add_beta_free": "Gratis"
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,16 @@
"pci_projects_project_storages_blocks_add_type_addon_iops_not_guaranteed": "Até {{iops}} IOPS {{separator}} ",
"pci_projects_project_storages_blocks_add_type_addon_capacity_max": "{{capacity}} máx.",
"pci_projects_project_storages_blocks_add_type_addon_price": "{{price}} /hora + IVA por GB",
"pci_projects_project_storages_blocks_add_size_iops": "IOPS: {{iops}}"
"pci_projects_project_storages_blocks_add_size_iops": "IOPS: {{iops}}",
"pci_projects_project_storages_blocks_add_availability_zone": "Selecione uma zona de disponibilidade",
"pci_projects_project_storages_blocks_add_deployment_mode_title": "Selecione um modo de implementação",
"pci_projects_project_storages_blocks_add_deployment_mode_description": "Escolha uma configuração ótima para assegurar a disponibilidade, a resiliência e a latência adequadas aos seus dados, consoante o seu caso de utilização. <Link>Saber mais</Link>",
"pci_projects_project_storages_blocks_add_deployment_mode_title_region": "Região 1-AZ",
"pci_projects_project_storages_blocks_add_deployment_mode_description_region": "Implementação resiliente e económica numa zona de disponibilidade.",
"pci_projects_project_storages_blocks_add_deployment_mode_title_region-3-az": "Região 3-AZ",
"pci_projects_project_storages_blocks_add_deployment_mode_description_region-3-az": "Implementação de alta resiliência/alta disponibilidade para as suas aplicações críticas em 3 zonas de disponibilidade.",
"pci_projects_project_storages_blocks_add_deployment_mode_title_localzone": "Local Zone",
"pci_projects_project_storages_blocks_add_deployment_mode_description_localzone": "Implementação das suas aplicações mais próxima dos seus utilizadores para uma baixa latência e residência dos dados.",
"pci_projects_project_storages_blocks_add_deployment_mode_price_from": "A partir de {{price}} /GB/hora + IVA",
"pci_projects_project_storages_blocks_add_beta_free": "Grátis"
}

This file was deleted.

68 changes: 41 additions & 27 deletions packages/manager/apps/pci-block-storage/src/api/data/catalog.ts
Original file line number Diff line number Diff line change
@@ -1,28 +1,42 @@
export type TPricing = {
capacities: string[];
mode: string;
phase: number;
commitment: number;
description: string;
price: {
currencyCode: string;
text: string;
value: number;
};
tax: number;
interval: number;
intervalUnit: string;
quantity: {
max?: number;
min?: number;
};
repeat: {
max?: number;
min?: number;
};
strategy: string;
mustBeCompleted: boolean;
type: string;
promotions: unknown[];
engagementConfiguration?: unknown;
import { TAddon } from '@ovh-ux/manager-pci-common';
import { v6 } from '@ovh-ux/manager-core-api';
import { TRegion } from '@/api/data/regions';

export type TCatalogGroup = {
name: string;
tags: string[];
};

export type TVolumePricing = Pick<TAddon['pricings'][number], 'price'> & {
regions: TRegion['name'][];
showAvailabilityZones: boolean;
interval: 'day' | 'hour' | 'month' | 'none';
specs: TAddon['blobs']['technical'];
};

export type TVolumeCatalogFilter = {
[key in 'deployment' | 'region']: TCatalogGroup[];
};

export type TVolumeCatalogElementFilter = {
[Property in keyof TVolumeCatalogFilter]?: TVolumeCatalogFilter[Property][number]['name'][];
};

export type TVolumeAddon = {
name: string;
tags: string[];
filters: TVolumeCatalogElementFilter;
pricings: TVolumePricing[];
};

export type TVolumeCatalog = {
filters: TVolumeCatalogFilter;
regions: TRegion[];
models: TVolumeAddon[];
};

export const getVolumeCatalog = async (
projectId: string,
): Promise<TVolumeCatalog> =>
(await v6.get<TVolumeCatalog>(`/cloud/project/${projectId}/catalog/volume`))
.data;
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export interface Instance {
planCode: string;
operationIds: string[];
currentMonthOutgoingTraffic: number;
availabilityZone?: string;
}

export interface MonthlyBilling {
Expand Down
Loading
Loading