Skip to content

Commit dff79b3

Browse files
authored
remove unnecessary field MantleRestore.status.pool (#186)
* update mock library to v0.6.0 To avoid error on go v1.25 environment Signed-off-by: Yuji Ito <llamerada.jp@gmail.com> * remove unnecessary field `MantleRestore.status.pool` `MantleRestore.status.pool` was kept to delete MR without MantleBackup. But the procedure of deletion has changed, and the field is unused. Signed-off-by: Yuji Ito <llamerada.jp@gmail.com> --------- Signed-off-by: Yuji Ito <llamerada.jp@gmail.com>
1 parent 08ede0d commit dff79b3

7 files changed

Lines changed: 32 additions & 59 deletions

File tree

api/v1/mantlerestore_types.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@ type MantleRestoreStatus struct {
2828

2929
// 'clusterID' specifies the Ceph cluster ID the source PV/PVC belongs to
3030
ClusterID string `json:"clusterID,omitempty"`
31-
32-
// 'pool' specifies pool name the volumes are restored to
33-
Pool string `json:"pool,omitempty"`
3431
}
3532

3633
const (

charts/mantle-cluster-wide/templates/mantle.cybozu.io_mantlerestores.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,6 @@ spec:
112112
- type
113113
type: object
114114
type: array
115-
pool:
116-
description: '''pool'' specifies pool name the volumes are restored
117-
to'
118-
type: string
119115
type: object
120116
type: object
121117
served: true

config/crd/bases/mantle.cybozu.io_mantlerestores.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,6 @@ spec:
112112
- type
113113
type: object
114114
type: array
115-
pool:
116-
description: '''pool'' specifies pool name the volumes are restored
117-
to'
118-
type: string
119115
type: object
120116
type: object
121117
served: true

go.mod

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ require (
1212
github.com/prometheus/client_golang v1.22.0
1313
github.com/pseudomuto/protoc-gen-doc v1.5.1
1414
github.com/spf13/cobra v1.9.1
15-
go.uber.org/mock v0.5.2
15+
go.uber.org/mock v0.6.0
1616
golang.org/x/time v0.11.0
1717
google.golang.org/grpc v1.72.2
1818
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1
@@ -88,14 +88,14 @@ require (
8888
go.uber.org/automaxprocs v1.6.0 // indirect
8989
go.uber.org/multierr v1.11.0 // indirect
9090
go.uber.org/zap v1.27.0 // indirect
91-
golang.org/x/crypto v0.36.0 // indirect
92-
golang.org/x/net v0.38.0 // indirect
91+
golang.org/x/crypto v0.41.0 // indirect
92+
golang.org/x/net v0.43.0 // indirect
9393
golang.org/x/oauth2 v0.27.0 // indirect
94-
golang.org/x/sync v0.12.0 // indirect
95-
golang.org/x/sys v0.32.0 // indirect
96-
golang.org/x/term v0.30.0 // indirect
97-
golang.org/x/text v0.23.0 // indirect
98-
golang.org/x/tools v0.31.0 // indirect
94+
golang.org/x/sync v0.16.0 // indirect
95+
golang.org/x/sys v0.35.0 // indirect
96+
golang.org/x/term v0.34.0 // indirect
97+
golang.org/x/text v0.28.0 // indirect
98+
golang.org/x/tools v0.36.0 // indirect
9999
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
100100
google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a // indirect
101101
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a // indirect

go.sum

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -194,51 +194,51 @@ go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=
194194
go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8=
195195
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
196196
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
197-
go.uber.org/mock v0.5.2 h1:LbtPTcP8A5k9WPXj54PPPbjcI4Y6lhyOZXn+VS7wNko=
198-
go.uber.org/mock v0.5.2/go.mod h1:wLlUxC2vVTPTaE3UD51E0BGOAElKrILxhVSDYQLld5o=
197+
go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y=
198+
go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU=
199199
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
200200
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
201201
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
202202
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
203203
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
204204
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
205205
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
206-
golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
207-
golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
206+
golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4=
207+
golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc=
208208
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
209209
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
210210
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
211211
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
212212
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
213213
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
214-
golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
215-
golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
214+
golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=
215+
golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=
216216
golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M=
217217
golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
218218
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
219219
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
220220
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
221-
golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
222-
golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
221+
golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
222+
golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
223223
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
224224
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
225225
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
226-
golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20=
227-
golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
228-
golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y=
229-
golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g=
226+
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
227+
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
228+
golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4=
229+
golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw=
230230
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
231231
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
232-
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
233-
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
232+
golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
233+
golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=
234234
golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0=
235235
golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg=
236236
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
237237
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
238238
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
239239
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
240-
golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU=
241-
golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ=
240+
golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg=
241+
golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=
242242
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
243243
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
244244
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

internal/controller/mantlerestore_controller.go

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -141,25 +141,6 @@ func (r *MantleRestoreReconciler) restore(ctx context.Context, restore *mantlev1
141141
return requeueReconciliation(), nil
142142
}
143143

144-
// store the pool name in the status
145-
var pv corev1.PersistentVolume
146-
err = json.Unmarshal([]byte(backup.Status.PVManifest), &pv)
147-
if err != nil {
148-
logger.Error(err, "failed to unmarshal PV manifest", "backup", backup.Name, "namespace", backup.Namespace)
149-
return ctrl.Result{}, err
150-
}
151-
restore.Status.Pool = pv.Spec.CSI.VolumeAttributes["pool"]
152-
if restore.Status.Pool == "" {
153-
err := fmt.Errorf("pool not found in PV manifest")
154-
logger.Error(err, "status.pool cannot be set", "backup", backup.Name, "namespace", backup.Namespace)
155-
return ctrl.Result{}, err
156-
}
157-
err = r.client.Status().Update(ctx, restore)
158-
if err != nil {
159-
logger.Error(err, "failed to update status.pool", "status", restore.Status)
160-
return ctrl.Result{}, err
161-
}
162-
163144
// create a clone image from the backup
164145
if err := r.cloneImageFromBackup(ctx, restore, &backup); err != nil {
165146
logger.Error(err, "failed to clone image from backup", "backup", backup.Name, "namespace", backup.Namespace)
@@ -213,23 +194,27 @@ func (r *MantleRestoreReconciler) cloneImageFromBackup(ctx context.Context, rest
213194
if bkImage == "" {
214195
return fmt.Errorf("imageName not found in PV manifest")
215196
}
197+
pool := pv.Spec.CSI.VolumeAttributes["pool"]
198+
if pool == "" {
199+
return fmt.Errorf("pool not found in PV manifest")
200+
}
216201

217-
images, err := r.ceph.RBDLs(restore.Status.Pool)
202+
images, err := r.ceph.RBDLs(pool)
218203
if err != nil {
219204
return fmt.Errorf("failed to list RBD images: %w", err)
220205
}
221206

222207
// check if the image already exists
223208
if slices.Contains(images, r.restoringRBDImageName(restore)) {
224-
info, err := r.ceph.RBDInfo(restore.Status.Pool, r.restoringRBDImageName(restore))
209+
info, err := r.ceph.RBDInfo(pool, r.restoringRBDImageName(restore))
225210
if err != nil {
226211
return fmt.Errorf("failed to get RBD info: %w", err)
227212
}
228213
if info.Parent == nil {
229214
return fmt.Errorf("failed to get RBD info: parent field is empty")
230215
}
231216

232-
if info.Parent.Pool == restore.Status.Pool && info.Parent.Image == bkImage && info.Parent.Snapshot == backup.Name {
217+
if info.Parent.Pool == pool && info.Parent.Image == bkImage && info.Parent.Snapshot == backup.Name {
233218
logger.Info("image already exists", "image", r.restoringRBDImageName(restore))
234219
return nil
235220
} else {
@@ -245,7 +230,7 @@ func (r *MantleRestoreReconciler) cloneImageFromBackup(ctx context.Context, rest
245230
}
246231

247232
// create a clone image from the backup
248-
return r.ceph.RBDClone(restore.Status.Pool, bkImage, backup.Name, r.restoringRBDImageName(restore), features)
233+
return r.ceph.RBDClone(pool, bkImage, backup.Name, r.restoringRBDImageName(restore), features)
249234
}
250235

251236
func (r *MantleRestoreReconciler) createOrUpdateRestoringPV(ctx context.Context, restore *mantlev1.MantleRestore, backup *mantlev1.MantleBackup) error {

test/e2e/singlek8s/restore_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,6 @@ func (test *restoreTest) testCloneImageFromBackup() {
412412
},
413413
Status: mantlev1.MantleRestoreStatus{
414414
ClusterID: cephCluster1Namespace,
415-
Pool: test.poolName,
416415
},
417416
}
418417
var info *rbdInfo

0 commit comments

Comments
 (0)