diff options
Diffstat (limited to '')
-rw-r--r-- | src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-realm.service.ts | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-realm.service.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-realm.service.ts new file mode 100644 index 000000000..e81731cd5 --- /dev/null +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-realm.service.ts @@ -0,0 +1,84 @@ +import { HttpClient, HttpParams } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { RgwRealm } from '~/app/ceph/rgw/models/rgw-multisite'; +import { Icons } from '../enum/icons.enum'; +import { RgwDaemonService } from './rgw-daemon.service'; + +@Injectable({ + providedIn: 'root' +}) +export class RgwRealmService { + private url = 'api/rgw/realm'; + + constructor(private http: HttpClient, public rgwDaemonService: RgwDaemonService) {} + + create(realm: RgwRealm, defaultRealm: boolean) { + let requestBody = { + realm_name: realm.name, + default: defaultRealm + }; + return this.http.post(`${this.url}`, requestBody); + } + + update(realm: RgwRealm, defaultRealm: boolean, newRealmName: string) { + let requestBody = { + realm_name: realm.name, + default: defaultRealm, + new_realm_name: newRealmName + }; + return this.http.put(`${this.url}/${realm.name}`, requestBody); + } + + list(): Observable<object> { + return this.http.get<object>(`${this.url}`); + } + + get(realm: RgwRealm): Observable<object> { + return this.http.get(`${this.url}/${realm.name}`); + } + + getAllRealmsInfo(): Observable<object> { + return this.http.get(`${this.url}/get_all_realms_info`); + } + + delete(realmName: string): Observable<any> { + let params = new HttpParams(); + params = params.appendAll({ + realm_name: realmName + }); + return this.http.delete(`${this.url}/${realmName}`, { params: params }); + } + + getRealmTree(realm: RgwRealm, defaultRealmId: string) { + let nodes = {}; + let realmIds = []; + nodes['id'] = realm.id; + realmIds.push(realm.id); + nodes['name'] = realm.name; + nodes['info'] = realm; + nodes['is_default'] = realm.id === defaultRealmId ? true : false; + nodes['icon'] = Icons.reweight; + nodes['type'] = 'realm'; + return { + nodes: nodes, + realmIds: realmIds + }; + } + + importRealmToken(realm_token: string, zone_name: string, port: number, placementSpec: object) { + let requestBody = { + realm_token: realm_token, + zone_name: zone_name, + port: port, + placement_spec: placementSpec + }; + return this.http.post(`${this.url}/import_realm_token`, requestBody); + } + + getRealmTokens() { + return this.rgwDaemonService.request(() => { + return this.http.get(`${this.url}/get_realm_tokens`); + }); + } +} |