@@ -488,36 +488,6 @@ def _create_collection(self, model):
488488 # Unencrypted path
489489 db .create_collection (db_table )
490490
491- def _get_data_key (
492- self ,
493- client_encryption ,
494- key_vault_collection ,
495- create_data_keys ,
496- kms_provider ,
497- master_key ,
498- key_alt_name ,
499- ):
500- """Return an existing or newly-created data key ID for a field."""
501- if create_data_keys :
502- if not client_encryption :
503- raise ImproperlyConfigured ("client_encryption is not configured." )
504- return client_encryption .create_data_key (
505- kms_provider = kms_provider ,
506- master_key = master_key ,
507- key_alt_names = [key_alt_name ],
508- )
509- if key_vault_collection is None :
510- raise ImproperlyConfigured (
511- f"Encrypted field { key_alt_name } detected but no key vault configured"
512- )
513- key = key_vault_collection .find_one ({"keyAltNames" : key_alt_name })
514- if not key :
515- raise ValueError (
516- f"No key found in keyvault for keyAltName={ key_alt_name } . "
517- "Run with '--create-data-keys' to create missing keys."
518- )
519- return key ["_id" ]
520-
521491 def _get_encrypted_fields (
522492 self , model , create_data_keys = False , key_alt_name = None , path_prefix = None
523493 ):
@@ -532,12 +502,10 @@ def _get_encrypted_fields(
532502 path_prefix = path_prefix or ""
533503
534504 options = client ._options
535- auto_encryption_opts = getattr ( options , " auto_encryption_opts" , None )
505+ auto_encryption_opts = options . auto_encryption_opts
536506
537- key_vault_collection = None
538- if auto_encryption_opts :
539- key_vault_db , key_vault_coll = auto_encryption_opts ._key_vault_namespace .split ("." , 1 )
540- key_vault_collection = client [key_vault_db ][key_vault_coll ]
507+ key_vault_db , key_vault_coll = auto_encryption_opts ._key_vault_namespace .split ("." , 1 )
508+ key_vault_collection = client [key_vault_db ][key_vault_coll ]
541509
542510 kms_provider = router .kms_provider (model )
543511 master_key = connection .settings_dict .get ("KMS_CREDENTIALS" , {}).get (kms_provider )
@@ -564,14 +532,15 @@ def _get_encrypted_fields(
564532
565533 if getattr (field , "encrypted" , False ):
566534 bson_type = field .db_type (connection )
567- data_key = self ._get_data_key (
568- client_encryption ,
569- key_vault_collection ,
570- create_data_keys ,
571- kms_provider ,
572- master_key ,
573- new_key_alt_name ,
574- )
535+ if create_data_keys :
536+ data_key = client_encryption .create_data_key (
537+ kms_provider = kms_provider ,
538+ master_key = master_key ,
539+ key_alt_names = [new_key_alt_name ],
540+ )
541+ else :
542+ key = key_vault_collection .find_one ({"keyAltNames" : new_key_alt_name })
543+ data_key = key ["_id" ]
575544 field_dict = {
576545 "bsonType" : bson_type ,
577546 "path" : path ,
0 commit comments