Adding create_secret, exception handle, fix (#1680)

This commit is contained in:
Zane Williamson 2018-07-14 00:39:19 -07:00 committed by Terry Cain
commit ba1ceee95f
5 changed files with 126 additions and 12 deletions

View file

@ -6,14 +6,17 @@ import json
import boto3
from moto.core import BaseBackend, BaseModel
from .exceptions import ResourceNotFoundException
class SecretsManager(BaseModel):
def __init__(self, region_name, **kwargs):
self.region = region_name
self.secret_id = kwargs.get('secret_id', '')
self.version_id = kwargs.get('version_id', '')
self.version_stage = kwargs.get('version_stage', '')
self.secret_string = ''
class SecretsManagerBackend(BaseBackend):
@ -22,15 +25,25 @@ class SecretsManagerBackend(BaseBackend):
super(SecretsManagerBackend, self).__init__()
self.region = region_name
self.secret_id = kwargs.get('secret_id', '')
self.name = kwargs.get('name', '')
self.createdate = int(time.time())
self.secret_string = ''
def reset(self):
region_name = self.region
self.__dict__ = {}
self.__init__(region_name)
def get_secret_value(self, secret_id, version_id, version_stage):
if self.secret_id == '':
raise ResourceNotFoundException()
response = json.dumps({
"ARN": self.secret_arn(),
"ARN": self.secret_arn(self.region, self.secret_id),
"Name": self.secret_id,
"VersionId": "A435958A-D821-4193-B719-B7769357AER4",
"SecretString": "mysecretstring",
"SecretString": self.secret_string,
"VersionStages": [
"AWSCURRENT",
],
@ -39,11 +52,26 @@ class SecretsManagerBackend(BaseBackend):
return response
def secret_arn(self):
def create_secret(self, name, secret_string, **kwargs):
self.secret_string = secret_string
self.secret_id = name
response = json.dumps({
"ARN": self.secret_arn(self.region, name),
"Name": self.secret_id,
"VersionId": "A435958A-D821-4193-B719-B7769357AER4",
})
return response
def secret_arn(self, region, secret_id):
return "arn:aws:secretsmanager:{0}:1234567890:secret:{1}-rIjad".format(
self.region, self.secret_id)
region, secret_id)
available_regions = boto3.session.Session().get_available_regions("secretsmanager")
print(available_regions)
secretsmanager_backends = {region: SecretsManagerBackend(region_name=region) for region in available_regions}
available_regions = (
boto3.session.Session().get_available_regions("secretsmanager")
)
secretsmanager_backends = {region: SecretsManagerBackend(region_name=region)
for region in available_regions}