]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: Export rgw multisite status via the API 55228/head
authorAashish Sharma <aasharma@li-e74156cc-2f67-11b2-a85c-e98659a63c5c.ibm.com>
Thu, 18 Jan 2024 07:58:46 +0000 (13:28 +0530)
committerAashish Sharma <aasharma@li-e74156cc-2f67-11b2-a85c-e98659a63c5c.ibm.com>
Tue, 30 Jan 2024 03:30:49 +0000 (09:00 +0530)
Fixes: https://tracker.ceph.com/issues/64081
Signed-off-by: Aashish Sharma <aasharma@redhat.com>
src/pybind/mgr/dashboard/controllers/rgw.py
src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-multisite.service.ts
src/pybind/mgr/dashboard/openapi.yaml

index 661dc8afb6dad0d28a2dd4a222d108bf69ea20e6..0a347a44d888eabe2eb7ba6c4846e9a2abdf710c 100644 (file)
@@ -86,6 +86,7 @@ class Rgw(BaseController):
 class RgwMultisiteStatus(RESTController):
     @Endpoint()
     @ReadPermission
+    @EndpointDoc("Get the multisite sync status")
     # pylint: disable=R0801
     def status(self):
         status = {'available': True, 'message': None}
@@ -110,6 +111,10 @@ class RgwMultisiteStatus(RESTController):
                                                          secret_key)
         return result
 
+
+@APIRouter('rgw/multisite', Scope.RGW)
+@APIDoc("RGW Multisite Management API", "RgwMultisite")
+class RgwMultisiteSyncStatus(RESTController):
     @RESTController.Collection(method='GET', path='/sync_status')
     @allow_empty_body
     # pylint: disable=W0102,W0613
index d36c3a29e1a955615a3e25ea1b2aec80887c94cf..da789d29fc4959cd5c53cb8be244c06b87076d26 100644 (file)
@@ -7,7 +7,8 @@ import { RgwDaemonService } from './rgw-daemon.service';
   providedIn: 'root'
 })
 export class RgwMultisiteService {
-  private url = 'ui-api/rgw/multisite';
+  private uiUrl = 'ui-api/rgw/multisite';
+  private url = 'api/rgw/multisite';
 
   constructor(private http: HttpClient, public rgwDaemonService: RgwDaemonService) {}
 
@@ -22,7 +23,7 @@ export class RgwMultisiteService {
         access_key: zone.system_key.access_key,
         secret_key: zone.system_key.secret_key
       });
-      return this.http.put(`${this.url}/migrate`, null, { params: params });
+      return this.http.put(`${this.uiUrl}/migrate`, null, { params: params });
     });
   }
 
index fb2b7059a53a378cc8201270cccac3bac4a300ff..73ad27c36e67c0d7e301b5461029ba0bab433368 100644 (file)
@@ -9545,6 +9545,28 @@ paths:
       - jwt: []
       tags:
       - RgwDaemon
+  /api/rgw/multisite/sync_status:
+    get:
+      parameters: []
+      responses:
+        '200':
+          content:
+            application/vnd.ceph.api.v1.0+json:
+              type: object
+          description: OK
+        '400':
+          description: Operation exception. Please check the response body for details.
+        '401':
+          description: Unauthenticated access. Please login first.
+        '403':
+          description: Unauthorized access. Please check your permissions.
+        '500':
+          description: Unexpected error. Please check the response body for the stack
+            trace.
+      security:
+      - jwt: []
+      tags:
+      - RgwMultisite
   /api/rgw/realm:
     get:
       parameters: []
@@ -13194,6 +13216,8 @@ tags:
   name: RgwDaemon
 - description: Rgw Mirroring Perf Counters Management API
   name: RgwMirrorPerfCounter
+- description: RGW Multisite Management API
+  name: RgwMultisite
 - description: Rgw Perf Counters Management API
   name: RgwPerfCounter
 - description: '*No description available*'