]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-realm.service.ts
update ceph source to reef 18.2.1
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / shared / api / rgw-realm.service.ts
1 import { HttpClient, HttpParams } from '@angular/common/http';
2 import { Injectable } from '@angular/core';
3 import { Observable } from 'rxjs';
4 import { RgwRealm } from '~/app/ceph/rgw/models/rgw-multisite';
5 import { Icons } from '../enum/icons.enum';
6 import { RgwDaemonService } from './rgw-daemon.service';
7
8 @Injectable({
9 providedIn: 'root'
10 })
11 export class RgwRealmService {
12 private url = 'api/rgw/realm';
13
14 constructor(private http: HttpClient, public rgwDaemonService: RgwDaemonService) {}
15
16 create(realm: RgwRealm, defaultRealm: boolean) {
17 let requestBody = {
18 realm_name: realm.name,
19 default: defaultRealm
20 };
21 return this.http.post(`${this.url}`, requestBody);
22 }
23
24 update(realm: RgwRealm, defaultRealm: boolean, newRealmName: string) {
25 let requestBody = {
26 realm_name: realm.name,
27 default: defaultRealm,
28 new_realm_name: newRealmName
29 };
30 return this.http.put(`${this.url}/${realm.name}`, requestBody);
31 }
32
33 list(): Observable<object> {
34 return this.http.get<object>(`${this.url}`);
35 }
36
37 get(realm: RgwRealm): Observable<object> {
38 return this.http.get(`${this.url}/${realm.name}`);
39 }
40
41 getAllRealmsInfo(): Observable<object> {
42 return this.http.get(`${this.url}/get_all_realms_info`);
43 }
44
45 delete(realmName: string): Observable<any> {
46 let params = new HttpParams();
47 params = params.appendAll({
48 realm_name: realmName
49 });
50 return this.http.delete(`${this.url}/${realmName}`, { params: params });
51 }
52
53 getRealmTree(realm: RgwRealm, defaultRealmId: string) {
54 let nodes = {};
55 let realmIds = [];
56 nodes['id'] = realm.id;
57 realmIds.push(realm.id);
58 nodes['name'] = realm.name;
59 nodes['info'] = realm;
60 nodes['is_default'] = realm.id === defaultRealmId ? true : false;
61 nodes['icon'] = Icons.reweight;
62 nodes['type'] = 'realm';
63 return {
64 nodes: nodes,
65 realmIds: realmIds
66 };
67 }
68
69 importRealmToken(realm_token: string, zone_name: string, port: number, placementSpec: object) {
70 let requestBody = {
71 realm_token: realm_token,
72 zone_name: zone_name,
73 port: port,
74 placement_spec: placementSpec
75 };
76 return this.http.post(`${this.url}/import_realm_token`, requestBody);
77 }
78
79 getRealmTokens() {
80 return this.rgwDaemonService.request(() => {
81 return this.http.get(`${this.url}/get_realm_tokens`);
82 });
83 }
84 }