@@ -161,6 +161,47 @@ def create_milvus_accounts(data: dict):
161161 if cfg .get ('components.seaweedfs' ):
162162 return create_seaweedfs_milvus_account (data )
163163
164+ def delete_minio_milvus_account (data : dict ):
165+ """
166+ Deletes technical accounts for MINIO
167+ """
168+ try :
169+ logging .info ("removing milvus minio technical accounts." )
170+ minioClient = mutil .MinioClient ()
171+ res = util .check (minioClient .remove_user (data ["milvus_s3_username" ]), "remove_user" , True )
172+ return util .check (minioClient .force_bucket_remove (data ["milvus_bucket_name" ]), "force_bucket_remove" , res )
173+
174+ except Exception as ex :
175+ logging .error ("Could not delete milvus MINIO accounts" , ex )
176+ return False
177+
178+ def delete_seaweedfs_milvus_account (data : dict ):
179+ """
180+ Delete technical accounts for SEAWEEDFS
181+ """
182+ try :
183+ logging .info ("removing milvus seaweedfs technical accounts." )
184+ seaweedfsClient = SeaweedfsClient ()
185+ res = util .check (seaweedfsClient .delete_user (data ["milvus_s3_username" ]), "delete_user" , True )
186+ return util .check (seaweedfsClient .force_bucket_remove (data ["milvus_bucket_name" ]), "force_bucket_remove" , res )
187+
188+ except Exception as ex :
189+ logging .error ("Could not delete milvus SEAWEEDFS accounts" , ex )
190+ return False
191+
192+ def delete_milvus_accounts (data : dict ):
193+ """"
194+ Deletes technical accounts for ETCD and MINIO
195+ """
196+ # currently we use the ETCD root password, so we skip the ETCD user deletion.
197+
198+ logging .info ("removing milvus technical accounts." )
199+ if cfg .get ('components.minio' ):
200+ return delete_minio_milvus_account (data )
201+
202+ if cfg .get ('components.seaweedfs' ):
203+ return delete_seaweedfs_milvus_account (data )
204+
164205
165206def create_default_milvus_database (data ):
166207 """
@@ -258,13 +299,13 @@ def delete_ow_milvus(ucfg):
258299 return res
259300
260301
261- def delete_by_owner ():
262- data = util .get_milvus_config_data ()
302+ def delete_by_owner (data ):
263303 dir = "milvus"
264304 if data ['slim' ]:
265305 dir += "-slim"
266306 spec = kus .build (dir )
267307 res = kube .delete (spec )
308+
268309 logging .info (f"delete milvus: { res } " )
269310 return res
270311
@@ -278,10 +319,13 @@ def delete_by_spec():
278319
279320
280321def delete (owner = None ):
322+ data = util .get_milvus_config_data ()
281323 if owner :
282- return delete_by_owner ()
324+ res = delete_by_owner (data )
283325 else :
284- return delete_by_spec ()
326+ res = delete_by_spec ()
327+
328+ return delete_milvus_accounts (data )
285329
286330
287331def patch (status , action , owner = None ):
0 commit comments