import { RgwMultisiteWizardComponent } from '../rgw-multisite-wizard/rgw-multisite-wizard.component';
import { RgwMultisiteSyncPolicyComponent } from '../rgw-multisite-sync-policy/rgw-multisite-sync-policy.component';
import { ModalCdsService } from '~/app/shared/services/modal-cds.service';
+import { RgwMultisiteService } from '~/app/shared/api/rgw-multisite.service';
const BASE_URL = 'rgw/multisite/configuration';
public rgwDaemonService: RgwDaemonService,
public mgrModuleService: MgrModuleService,
private notificationService: NotificationService,
- private cdsModalService: ModalCdsService
+ private cdsModalService: ModalCdsService,
+ private rgwMultisiteService: RgwMultisiteService
) {
this.permission = this.authStorageService.getPermissions().rgw;
}
this.realmIds = [];
this.zoneIds = [];
this.evaluateMigrateAndReplicationActions();
+ this.rgwMultisiteService.restartGatewayMessage$.subscribe((value) => {
+ if (value !== null) {
+ this.restartGatewayMessage = value;
+ } else {
+ this.checkRestartGatewayMessage();
+ }
+ });
+ return allNodes;
+ }
+
+ checkRestartGatewayMessage() {
this.rgwDaemonService.list().subscribe((data: any) => {
- const hasEmptyRealmName = data.some(
- (item: { [x: string]: any }) =>
- item['realm_name'] === '' &&
- !data.some((i: { [x: string]: any }) => i['id'] === item['id'] && i['realm_name'] !== '')
- );
+ const realmName = data.map((item: { [x: string]: any }) => item['realm_name']);
if (
this.defaultRealmId !== '' &&
this.defaultZonegroupId !== '' &&
this.defaultZoneId !== '' &&
- hasEmptyRealmName
+ realmName.includes('')
) {
this.restartGatewayMessage = true;
+ } else {
+ this.restartGatewayMessage = false;
}
});
- return allNodes;
}
getDefaultsEntities(
import { Injectable } from '@angular/core';
import { RgwRealm, RgwZone, RgwZonegroup } from '~/app/ceph/rgw/models/rgw-multisite';
import { RgwDaemonService } from './rgw-daemon.service';
+import { BehaviorSubject } from 'rxjs';
@Injectable({
providedIn: 'root'
private uiUrl = 'ui-api/rgw/multisite';
private url = 'api/rgw/multisite';
+ private restartGatewayMessageSource = new BehaviorSubject<boolean>(null);
+ restartGatewayMessage$ = this.restartGatewayMessageSource.asObservable();
+
constructor(private http: HttpClient, public rgwDaemonService: RgwDaemonService) {}
migrate(realm: RgwRealm, zonegroup: RgwZonegroup, zone: RgwZone) {
{ params }
);
}
+
+ setRestartGatewayMessage(value: boolean): void {
+ this.restartGatewayMessageSource.next(value);
+ }
}