]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-multisite.service.ts
update ceph source to reef 18.2.1
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / shared / api / rgw-multisite.service.ts
1 import { HttpClient, HttpParams } from '@angular/common/http';
2 import { Injectable } from '@angular/core';
3 import { RgwRealm, RgwZone, RgwZonegroup } from '~/app/ceph/rgw/models/rgw-multisite';
4 import { RgwDaemonService } from './rgw-daemon.service';
5
6 @Injectable({
7 providedIn: 'root'
8 })
9 export class RgwMultisiteService {
10 private url = 'ui-api/rgw/multisite';
11
12 constructor(private http: HttpClient, public rgwDaemonService: RgwDaemonService) {}
13
14 migrate(realm: RgwRealm, zonegroup: RgwZonegroup, zone: RgwZone) {
15 return this.rgwDaemonService.request((params: HttpParams) => {
16 params = params.appendAll({
17 realm_name: realm.name,
18 zonegroup_name: zonegroup.name,
19 zone_name: zone.name,
20 zonegroup_endpoints: zonegroup.endpoints,
21 zone_endpoints: zone.endpoints,
22 access_key: zone.system_key.access_key,
23 secret_key: zone.system_key.secret_key
24 });
25 return this.http.put(`${this.url}/migrate`, null, { params: params });
26 });
27 }
28
29 getSyncStatus() {
30 return this.http.get(`${this.url}/sync_status`);
31 }
32 }