Skip to content
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
11 changes: 10 additions & 1 deletion packages/manager/modules/netapp/src/components/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,18 @@ import angular from 'angular';

import selectCheckboxes from './select-checkboxes';
import snapshotList from './snapshot-policies';
import replicationsApprouveModal from './replications-approuve-modal';
import replicationsPromoteModal from './replications-promote-modal';
import replicationsDeleteModal from './replications-delete-modal';

const moduleName = 'ovhManagerNetAppComponents';

angular.module(moduleName, [selectCheckboxes, snapshotList]);
angular.module(moduleName, [
selectCheckboxes,
snapshotList,
replicationsApprouveModal,
replicationsPromoteModal,
replicationsDeleteModal,
]);

export default moduleName;
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import controller from './controller';
import template from './template.html';

export default {
bindings: {
goToReplications: '<',
params: '<',
},
controller,
template,
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
export default class ReplicationsApprouveModalCtrl {
/** @ngInject */
constructor($http, $translate, Alerter) {
this.Alerter = Alerter;
this.$translate = $translate;
this.$http = $http;
this.onLoad = false;
}

$onInit() {
this.isPrimaryDisabled =
!this.params.destinationServiceID ||
!this.params.sourceShareID ||
!this.params.replicationID;
}

onError() {
this.Alerter.error(
this.$translate.instant('netapp_replications_approuve_error', {
sourceShareID: this.params.sourceShareID,
}),
);
return this.goToReplications();
}

onPrimaryClick() {
return this.$http
.get(
`/storage/netapp/${this.params.destinationServiceID}/share/${this.params.sourceShareID}`,
)
.catch(() => this.onError())
.then(({ data: { size } }) =>
this.$http
.post(
`/storage/netapp/${this.params.destinationServiceID}/shareReplication/${this.params.replicationID}/accept`,
{
share: {
protocol: 'NFS',
size,
},
},
)
.then(() => {
this.goToReplications(true).then(() => {
this.Alerter.success(
this.$translate.instant(
'netapp_replications_approuve_success',
{ sourceShareID: this.params.sourceShareID },
),
);
});
})
.catch(() => this.onError()),
);
}

primaryAction() {
this.onLoad = true;
this.onPrimaryClick().finally(() => {
this.onLoad = false;
});
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import angular from 'angular';
import 'angular-translate';
import '@ovh-ux/ng-translate-async-loader';
import '@ovh-ux/ui-kit';

import component from './component';

const moduleName = 'ovhManagerReplicationsApprouveModalComponent';

angular
.module(moduleName, [
'pascalprecht.translate',
'oui',
'ngSanitize',
'ngTranslateAsyncLoader',
])
.component(moduleName, component)
.run(/* @ngTranslationsInject:json ./translations */);

export default moduleName;
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<oui-modal
data-loading="$ctrl.onLoad"
data-on-dismiss="$ctrl.goToReplications()"
data-heading="{{:: 'netapp_replications_modal_title_approuve' | translate }}"
data-primary-label="{{'netapp_replications_modal_primary_label_approuve' | translate}}"
data-primary-action="$ctrl.primaryAction()"
data-primary-disabled="$ctrl.isPrimaryDisabled"
data-secondary-label="{{'netapp_replications_modal_secondary_label' | translate}}"
data-secondary-action="$ctrl.goToReplications()"
>
<p
data-translate="{{ $ctrl.isPrimaryDisabled ? 'netapp_replications_modal_description_no_replication_selected' : 'netapp_replications_modal_description_approuve' }}"
></p>
</oui-modal>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"netapp_replications_modal_description_no_replication_selected": "Es wurde keine Replikation ausgewählt. Bitte wählen Sie eine aus.",
"netapp_replications_modal_title_approuve": "Replikation akzeptieren",
"netapp_replications_modal_description_approuve": "Achtung! Sie sind im Begriff, eine Replikation zu akzeptieren.",
"netapp_replications_modal_primary_label_approuve": "Synchronisieren",
"netapp_replications_modal_secondary_label": "Schließen",
"netapp_replications_approuve_error": "Das Akzeptieren der Replikation für Volume {{ sourceShareID }} ist fehlgeschlagen.",
"netapp_replications_approuve_success": "Die Replikation des Volumes {{ sourceShareID }} wurde erfolgreich akzeptiert und die Synchronisierung wurde gestartet."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"netapp_replications_modal_description_no_replication_selected": "No replication selected. Please select one.",
"netapp_replications_modal_title_approuve": "Accept replication",
"netapp_replications_modal_description_approuve": "Careful! You are about to accept a replication.",
"netapp_replications_modal_primary_label_approuve": "Sync",
"netapp_replications_modal_secondary_label": "Close",
"netapp_replications_approuve_error": "Unable to accept replication for the {{ sourceShareID }} volume.",
"netapp_replications_approuve_success": "Replication accepted for the {{ sourceShareID }} volume, and synchronisation is now in progress."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"netapp_replications_modal_description_no_replication_selected": "No se ha seleccionado ninguna replicación. Por favor, seleccione una.",
"netapp_replications_modal_title_approuve": "Aceptar replicación",
"netapp_replications_modal_description_approuve": "¡Atención! Va a aceptar una replicación.",
"netapp_replications_modal_primary_label_approuve": "Sincronizar",
"netapp_replications_modal_secondary_label": "Cerrar",
"netapp_replications_approuve_error": "No se pudo aceptar la replicación del volumen {{ sourceShareID }}.",
"netapp_replications_approuve_success": "La replicación del volumen {{ sourceShareID }} se ha aceptado correctamente y se ha iniciado la sincronización."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"netapp_replications_modal_description_no_replication_selected": "Aucune réplication sélectionnée. Merci d'en sélectionner une.",
"netapp_replications_modal_title_approuve": "Accepter la réplication",
"netapp_replications_modal_description_approuve": "Attention! Vous allez accepter une réplication.",
"netapp_replications_modal_primary_label_approuve": "Synchroniser",
"netapp_replications_modal_secondary_label": "Fermer",
"netapp_replications_approuve_error": "L'acceptation de la réplication du volume {{ sourceShareID }} a échoué.",
"netapp_replications_approuve_success": "La réplication du volume {{ sourceShareID }} a été acceptée avec succès et la synchronisation a commencé."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"netapp_replications_modal_description_no_replication_selected": "Aucune réplication sélectionnée. Merci d'en sélectionner une.",
"netapp_replications_modal_title_approuve": "Accepter la réplication",
"netapp_replications_modal_description_approuve": "Attention! Vous allez accepter une réplication.",
"netapp_replications_modal_primary_label_approuve": "Synchroniser",
"netapp_replications_modal_secondary_label": "Fermer",
"netapp_replications_approuve_error": "L'acceptation de la réplication du volume {{ sourceShareID }} a échoué.",
"netapp_replications_approuve_success": "La réplication du volume {{ sourceShareID }} a été acceptée avec succès et la synchronisation a commencé."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"netapp_replications_modal_description_no_replication_selected": "Nessuna replica selezionata. Ti chiediamo di selezionarne una.",
"netapp_replications_modal_title_approuve": "Accettare la replica",
"netapp_replications_modal_description_approuve": "Attenzione! Stai per accettare una replica.",
"netapp_replications_modal_primary_label_approuve": "Sincronizza",
"netapp_replications_modal_secondary_label": "Chiudere",
"netapp_replications_approuve_error": "L'accettazione della replica del volume {{ sourceShareID }} non è andata a buon fine.",
"netapp_replications_approuve_success": "La replica del volume {{ sourceShareID }} è stata accettata correttamente e la sincronizzazione è iniziata."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"netapp_replications_modal_description_no_replication_selected": "Nie wybrano replikacji. Prosimy o wybranie replikacji.",
"netapp_replications_modal_title_approuve": "Akceptuj replikację",
"netapp_replications_modal_description_approuve": "Uwaga: Chcesz zaakceptować replikację.",
"netapp_replications_modal_primary_label_approuve": "Synchronizuj",
"netapp_replications_modal_secondary_label": "Zamknij",
"netapp_replications_approuve_error": "Nie udało się zaakceptować replikacji wolumenu {{sourceShareID}}.",
"netapp_replications_approuve_success": "Replikacja wolumenu {{sourceShareID}} została zaakceptowana i rozpoczęła się synchronizacja."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"netapp_replications_modal_description_no_replication_selected": "Nenhuma replicação selecionada. Selecione uma.",
"netapp_replications_modal_title_approuve": "Aceitar a replicação",
"netapp_replications_modal_description_approuve": "Atenção! Vai aceitar uma replicação.",
"netapp_replications_modal_primary_label_approuve": "Sincronizar ",
"netapp_replications_modal_secondary_label": "Fechar",
"netapp_replications_approuve_error": "A aceitação da replicação do volume {{ sourceShareID }} falhou.",
"netapp_replications_approuve_success": "A replicação do volume {{ sourceShareID }} foi aceite com êxito e a sincronização foi iniciada."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import controller from './controller';
import template from './template.html';

export default {
bindings: {
serviceName: '<',
goToReplications: '<',
params: '<',
},
controller,
template,
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
import { REPLICATION_API_STATUS } from '../../dashboard/replications/constants';

export default class ReplicationsDeleteModalCtrl {
/** @ngInject */
constructor($http, $translate, Alerter) {
this.Alerter = Alerter;
this.$translate = $translate;
this.$http = $http;
this.onLoad = false;
}

$onInit() {
this.isPrimaryDisabled = !this.params.replicationID;
}

getTitle() {
if (
[
REPLICATION_API_STATUS.pending,
REPLICATION_API_STATUS.accepted,
].includes(this.params.status)
) {
return this.$translate.instant(
'netapp_replications_modal_delete_title_cancel',
);
}
return this.$translate.instant(
'netapp_replications_modal_delete_title_delete',
);
}

getDescription() {
switch (this.params.status) {
case REPLICATION_API_STATUS.pending:
return this.$translate.instant(
'netapp_replications_modal_delete_description_pending',
);
case REPLICATION_API_STATUS.completed:
return this.$translate.instant(
'netapp_replications_modal_delete_description_completed',
);
case REPLICATION_API_STATUS.accepted:
return this.$translate.instant(
'netapp_replications_modal_delete_description_accepted',
);
default:
return this.$translate.instant(
'netapp_replications_modal_delete_description_delete',
);
}
}

onError() {
this.Alerter.error(
[
REPLICATION_API_STATUS.pending,
REPLICATION_API_STATUS.accepted,
].includes(this.params.status)
? this.$translate.instant('netapp_replications_cancel_error', {
sourceShareID: this.params.sourceShareID,
})
: this.$translate.instant('netapp_replications_delete_error', {
sourceShareID: this.params.sourceShareID,
}),
);
return this.goToReplications();
}

primaryAction() {
this.$http
.delete(
`/storage/netapp/${this.serviceName}/shareReplication/${this.params.replicationID}`,
)
.then(() => {
return this.goToReplications(true).then(() => {
this.Alerter.success(
[
REPLICATION_API_STATUS.pending,
REPLICATION_API_STATUS.accepted,
].includes(this.params.status)
? this.$translate.instant('netapp_replications_cancel_success', {
sourceShareID: this.params.sourceShareID,
})
: this.$translate.instant('netapp_replications_delete_success', {
sourceShareID: this.params.sourceShareID,
}),
);
});
})
.catch(() => this.onError());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import angular from 'angular';
import 'angular-translate';
import '@ovh-ux/ng-translate-async-loader';
import '@ovh-ux/ui-kit';

import component from './component';

const moduleName = 'ovhManagerReplicationsDeleteModalComponent';

angular
.module(moduleName, [
'pascalprecht.translate',
'oui',
'ngSanitize',
'ngTranslateAsyncLoader',
])
.component(moduleName, component)
.run(/* @ngTranslationsInject:json ./translations */);

export default moduleName;
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<oui-modal
data-loading="$ctrl.onLoad"
data-type="error"
data-on-dismiss="$ctrl.goToReplications()"
data-heading="{{:: $ctrl.getTitle() }}"
data-primary-label="{{'netapp_replications_modal_delete_primary_label_confirm' | translate}}"
data-primary-action="$ctrl.primaryAction()"
data-primary-disabled="$ctrl.isPrimaryDisabled"
data-secondary-label="{{'netapp_replications_modal_delete_secondary_label' | translate}}"
data-secondary-action="$ctrl.goToReplications()"
>
<p
data-ng-if="$ctrl.isPrimaryDisabled"
data-translate="netapp_replications_modal_description_no_replication_selected"
></p>
<div data-ng-if="!$ctrl.isPrimaryDisabled">
<p data-translate="{{:: $ctrl.getDescription() }}"></p>
</div>
</oui-modal>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"netapp_replications_modal_description_no_replication_selected": "Es wurde keine Replikation ausgewählt. Bitte wählen Sie eine aus.",
"netapp_replications_modal_delete_title_delete": "Replikation löschen",
"netapp_replications_modal_delete_title_cancel": "Replikation abbrechen",
"netapp_replications_modal_delete_description_pending": "Sie werden diese Replikationsanforderung abbrechen, ohne sie zu akzeptieren. Möchten Sie wirklich fortfahren?",
"netapp_replications_modal_delete_description_completed": "Durch diese Aktion wird die Zeile aus der Tabelle gelöscht und die während des Replikationsprozesses erstellten Volumes (Quelle und Ziel) bleiben erhalten. Möchten Sie wirklich fortfahren?",
"netapp_replications_modal_delete_description_accepted": "Achtung: Wenn Sie diese Replikation abbrechen, beenden Sie die Synchronisierung und löschen das Zielvolume. Möchten Sie wirklich fortfahren?",
"netapp_replications_modal_delete_description_delete": "Sind Sie sicher, dass Sie diese Replikation löschen möchten?",
"netapp_replications_modal_delete_primary_label_confirm": "Bestätigen",
"netapp_replications_modal_delete_secondary_label": "Schließen",
"netapp_replications_delete_success": "Die Replikation des Volumes {{ sourceShareID }} wurde erfolgreich gelöscht.",
"netapp_replications_cancel_success": "Die Replikation des Volumes {{ sourceShareID }} wurde erfolgreich abgebrochen.",
"netapp_replications_delete_error": "Beim Löschen der Replikation für Volume {{ sourceShareID }} ist ein Fehler aufgetreten.",
"netapp_replications_cancel_error": "Das Abbrechen der Replikation für Volume {{ sourceShareID }} ist fehlgeschlagen."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"netapp_replications_modal_description_no_replication_selected": "No replication selected. Please select one.",
"netapp_replications_modal_delete_title_delete": "Delete replication",
"netapp_replications_modal_delete_title_cancel": "Cancel replication",
"netapp_replications_modal_delete_description_pending": "You are about to cancel this replication request without accepting it. Are you sure you want to continue?",
"netapp_replications_modal_delete_description_completed": "This action will delete the table row and keep the volumes created during the replication process (source and target). Are you sure you want to continue?",
"netapp_replications_modal_delete_description_accepted": "Careful, cancelling this replication will halt synchronisation and delete the target volume. Are you sure you want to continue?",
"netapp_replications_modal_delete_description_delete": "Are you sure that you want to delete this replication?",
"netapp_replications_modal_delete_primary_label_confirm": "Confirm",
"netapp_replications_modal_delete_secondary_label": "Close",
"netapp_replications_delete_success": "The {{ sourceShareID }} volume replication has been deleted.",
"netapp_replications_cancel_success": "The {{ sourceShareID }} volume is no longer replicated.",
"netapp_replications_delete_error": "Unable to delete the {{ sourceShareID }} volume replication.",
"netapp_replications_cancel_error": "Failed to undo replication for the {{ sourceShareID }} volume."
}
Loading
Loading