diff options
Diffstat (limited to 'src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-multisite.service.ts')
-rw-r--r-- | src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-multisite.service.ts | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-multisite.service.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-multisite.service.ts new file mode 100644 index 000000000..d36c3a29e --- /dev/null +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-multisite.service.ts @@ -0,0 +1,32 @@ +import { HttpClient, HttpParams } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { RgwRealm, RgwZone, RgwZonegroup } from '~/app/ceph/rgw/models/rgw-multisite'; +import { RgwDaemonService } from './rgw-daemon.service'; + +@Injectable({ + providedIn: 'root' +}) +export class RgwMultisiteService { + private url = 'ui-api/rgw/multisite'; + + constructor(private http: HttpClient, public rgwDaemonService: RgwDaemonService) {} + + migrate(realm: RgwRealm, zonegroup: RgwZonegroup, zone: RgwZone) { + return this.rgwDaemonService.request((params: HttpParams) => { + params = params.appendAll({ + realm_name: realm.name, + zonegroup_name: zonegroup.name, + zone_name: zone.name, + zonegroup_endpoints: zonegroup.endpoints, + zone_endpoints: zone.endpoints, + access_key: zone.system_key.access_key, + secret_key: zone.system_key.secret_key + }); + return this.http.put(`${this.url}/migrate`, null, { params: params }); + }); + } + + getSyncStatus() { + return this.http.get(`${this.url}/sync_status`); + } +} |