Skip to content

Commit 93fba05

Browse files
author
Dnyaneshwari
committed
mg/dashboard: Edit Storage Class
Fixes: https://tracker.ceph.com/issues/70016 Signed-off-by: Dnyaneshwari Talwekar <[email protected]>
1 parent 98fc589 commit 93fba05

File tree

11 files changed

+600
-363
lines changed

11 files changed

+600
-363
lines changed

src/pybind/mgr/dashboard/controllers/rgw.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1182,6 +1182,13 @@ def get(self, zonegroup_name):
11821182
result = multisite_instance.get_zonegroup(zonegroup_name)
11831183
return result
11841184

1185+
@Endpoint('GET')
1186+
@ReadPermission
1187+
def get_placement_target_by_placement_id(self, placement_id):
1188+
multisite_instance = RgwMultisite()
1189+
result = multisite_instance.get_placement_by_placement_id(placement_id)
1190+
return result
1191+
11851192
@Endpoint('DELETE', path='storage-class')
11861193
@DeletePermission
11871194
def remove_storage_class(self, placement_id: str, storage_class: str):
@@ -1197,6 +1204,14 @@ def storage_class(self, zone_group, placement_targets: List[Dict[str, str]] = []
11971204
result = multisite_instance.add_placement_targets(zone_group, placement_targets)
11981205
return result
11991206

1207+
@Endpoint('PUT', path='storage-class')
1208+
@CreatePermission
1209+
# pylint: disable=W0102
1210+
def editStorageClass(self, zone_group, placement_targets: List[Dict[str, str]] = []):
1211+
multisite_instance = RgwMultisite()
1212+
result = multisite_instance.modify_placement_targets(zone_group, placement_targets)
1213+
return result
1214+
12001215
@Endpoint()
12011216
@ReadPermission
12021217
def get_all_zonegroups_info(self):

src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/models/rgw-storage-class.model.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export interface StorageClass {
99
endpoint: string;
1010
region: string;
1111
placement_target: string;
12+
zonegroup_name?: string;
1213
}
1314

1415
export interface StorageClassDetails {
@@ -71,6 +72,7 @@ export interface S3Details {
7172
multipart_min_part_size: number;
7273
multipart_sync_threshold: number;
7374
host_style: boolean;
75+
retain_head_object?: boolean;
7476
}
7577

7678
export interface RequestModel {
@@ -81,7 +83,6 @@ export interface RequestModel {
8183
export interface PlacementTarget {
8284
tags: string[];
8385
placement_id: string;
84-
storage_class: string;
8586
tier_type: typeof CLOUD_TIER;
8687
tier_config: {
8788
endpoint: string;
@@ -93,6 +94,9 @@ export interface PlacementTarget {
9394
multipart_sync_threshold: number;
9495
multipart_min_part_size: number;
9596
};
97+
storage_class?: string;
98+
name?: string;
99+
tier_targets?: TierTarget[];
96100
}
97101

98102
export const CLOUD_TIER = 'cloud-s3';

0 commit comments

Comments
 (0)