TREE_ACTIONS
} from '@circlon/angular-tree-component';
import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap';
+import _ from 'lodash';
import { forkJoin, Subscription } from 'rxjs';
import { RgwRealmService } from '~/app/shared/api/rgw-realm.service';
import { RgwZoneService } from '~/app/shared/api/rgw-zone.service';
@ViewChild('tree') tree: TreeComponent;
messages = {
- noDefaultRealm: $localize`Please create a default realm first to enable this feature`
+ noDefaultRealm: $localize`Please create a default realm first to enable this feature`,
+ noMasterZone: $localize`Please create a master zone for each zonegroups to enable this feature`
};
icons = Icons;
if (this.defaultRealmId === '') {
return this.messages.noDefaultRealm;
} else {
- return false;
+ let isMasterZone = true;
+ this.zonegroups.forEach((zgp: any) => {
+ if (_.isEmpty(zgp.master_zone)) {
+ isMasterZone = false;
+ }
+ });
+ if (!isMasterZone) {
+ return this.messages.noMasterZone;
+ } else {
+ return false;
+ }
}
}
}
import _ from 'lodash';
import { RgwUserService } from '~/app/shared/api/rgw-user.service';
import { RgwZoneService } from '~/app/shared/api/rgw-zone.service';
+import { RgwZonegroupService } from '~/app/shared/api/rgw-zonegroup.service';
import { ActionLabelsI18n } from '~/app/shared/constants/app.constants';
import { NotificationType } from '~/app/shared/enum/notification-type.enum';
import { CdFormGroup } from '~/app/shared/forms/cd-form-group';
public activeModal: NgbActiveModal,
public actionLabels: ActionLabelsI18n,
public rgwZoneService: RgwZoneService,
+ public rgwZoneGroupService: RgwZonegroupService,
public notificationService: NotificationService,
public rgwUserService: RgwUserService
) {
});
}
+ onZoneGroupChange(zonegroupName: string) {
+ let zg = new RgwZonegroup();
+ zg.name = zonegroupName;
+ this.rgwZoneGroupService.get(zg).subscribe((zonegroup: RgwZonegroup) => {
+ if (_.isEmpty(zonegroup.master_zone)) {
+ this.multisiteZoneForm.get('master_zone').setValue(true);
+ this.multisiteZoneForm.get('master_zone').disable();
+ }
+ });
+ }
+
ngOnInit(): void {
this.zonegroupList =
this.multisiteInfo[1] !== undefined && this.multisiteInfo[1].hasOwnProperty('zonegroups')
this.multisiteZoneForm
.get('selectedZonegroup')
.setValue(this.defaultsInfo['defaultZonegroupName']);
+ this.onZoneGroupChange(this.defaultsInfo['defaultZonegroupName']);
}
this.rgwUserService.list().subscribe((users: any) => {
this.users = users.filter((user: any) => user.keys.length !== 0);
exit_code, _, err = mgr.send_rgwadmin_command(rgw_update_period_cmd)
if exit_code > 0:
raise DashboardException(e=err, msg='Unable to update period',
- http_status_code=500, component='rgw')
+ http_status_code=400, component='rgw')
except SubprocessError as error:
raise DashboardException(error, http_status_code=500, component='rgw')
cmd_edit_realm_options = ['--rgw-realm', realm_name, '--realm-new-name', new_realm_name]
rgw_realm_edit_cmd += cmd_edit_realm_options
try:
- exit_code, _, err = mgr.send_rgwadmin_command(rgw_realm_edit_cmd)
+ exit_code, _, err = mgr.send_rgwadmin_command(rgw_realm_edit_cmd, False)
if exit_code > 0:
raise DashboardException(e=err, msg='Unable to edit realm',
http_status_code=500, component='rgw')
- except ValueError:
- pass
-
+ except SubprocessError as error:
+ raise DashboardException(error, http_status_code=500, component='rgw')
if str_to_bool(default):
rgw_realm_edit_cmd = ['realm', 'default']
cmd_edit_realm_options = ['--rgw-realm', new_realm_name]
+ rgw_realm_edit_cmd += cmd_edit_realm_options
try:
- exit_code, _, _ = mgr.send_rgwadmin_command(rgw_realm_edit_cmd)
+ exit_code, _, _ = mgr.send_rgwadmin_command(rgw_realm_edit_cmd, False)
if exit_code > 0:
raise DashboardException(msg='Unable to set {} as default realm'.format(new_realm_name), # noqa E501 #pylint: disable=line-too-long
http_status_code=500, component='rgw')
cmd_create_zonegroup_options.append(endpoint)
rgw_zonegroup_create_cmd += cmd_create_zonegroup_options
try:
- exit_code, out, _ = mgr.send_rgwadmin_command(rgw_zonegroup_create_cmd)
+ exit_code, out, err = mgr.send_rgwadmin_command(rgw_zonegroup_create_cmd)
if exit_code > 0:
- raise DashboardException('Unable to get realm info',
+ raise DashboardException(e=err, msg='Unable to get realm info',
http_status_code=500, component='rgw')
except SubprocessError as error:
raise DashboardException(error, http_status_code=500, component='rgw')
cmd_create_zone_options.append(secret_key)
rgw_zone_create_cmd += cmd_create_zone_options
try:
- exit_code, out, _ = mgr.send_rgwadmin_command(rgw_zone_create_cmd)
+ exit_code, out, err = mgr.send_rgwadmin_command(rgw_zone_create_cmd)
if exit_code > 0:
- raise DashboardException(msg='Unable to create zone',
+ raise DashboardException(e=err, msg='Unable to create zone',
http_status_code=500, component='rgw')
except SubprocessError as error:
raise DashboardException(error, http_status_code=500, component='rgw')
+
self.update_period()
return out