1010
1111import logging
1212import os
13- from .simplessm import SimpleSSM
14- from .simples3 import SimpleS3
15- from .simplevault import SimpleVault
1613
1714
1815class SecretResolver :
@@ -33,7 +30,7 @@ def __init__(self, default_aws_profile=None):
3330 self .default_aws_profile = default_aws_profile
3431
3532 def supports (self , secret_type ):
36- return secret_type == "ssm"
33+ return "boto3" in sys . modules & & secret_type == "ssm"
3734
3835 def resolve (self , secret_type , secret_params ):
3936 aws_profile = secret_params .get ("aws_profile" , self .default_aws_profile )
@@ -43,6 +40,7 @@ def resolve(self, secret_type, secret_params):
4340
4441 path = self .get_param_or_exception ("path" , secret_params )
4542 region_name = secret_params .get ("region_name" , "us-east-1" )
43+ from .simplessm import SimpleSSM
4644 ssm = SimpleSSM (aws_profile , region_name )
4745 return ssm .get (path )
4846
@@ -52,7 +50,7 @@ def __init__(self, default_aws_profile=None):
5250 self .default_aws_profile = default_aws_profile
5351
5452 def supports (self , secret_type ):
55- return secret_type == "s3"
53+ return "boto3" in sys . modules & & secret_type == "s3"
5654
5755 def resolve (self , secret_type , secret_params ):
5856 aws_profile = secret_params .get ("aws_profile" , self .default_aws_profile )
@@ -65,15 +63,17 @@ def resolve(self, secret_type, secret_params):
6563 region_name = secret_params .get ("region_name" , "us-east-1" )
6664 base64Encode = secret_params .get ("base64encode" , False )
6765 base64Encode = base64Encode == 'true'
66+ from .simples3 import SimpleS3
6867 s3 = SimpleS3 (aws_profile , region_name )
6968 return s3 .get (bucket , path , base64Encode )
7069
7170
7271class VaultSecretResolver (SecretResolver ):
7372 def supports (self , secret_type ):
74- return secret_type == "vault"
73+ return "hvac" in sys . modules & & secret_type == "vault"
7574
7675 def resolve (self , secret_type , secret_params ):
76+ from .simplevault import SimpleVault
7777 vault = SimpleVault
7878
7979 # Generate a token for a policy
@@ -106,4 +106,4 @@ def resolve(self, secret_type, secret_params):
106106 if resolver .supports (secret_type ):
107107 return resolver .resolve (secret_type , secret_params )
108108
109- raise Exception ("Could not resolve secret type '{}' with params {}" .format (secret_type , secret_params ))
109+ raise Exception ("Could not resolve secret type '{}' with params {}. Check if you installed the required 3rd party modules. " .format (secret_type , secret_params ))
0 commit comments