コード例 #1
0
ファイル: deployer.py プロジェクト: ImmobilienScout24/crassus
 def load(self):
     self.stack = self.aws_cfn.Stack(self.stack_name)
     try:
         self.stack.load()
         logger.debug('Loaded Stack: %r', self.stack)
     except ClientError as error:
         logger.error(MESSAGE_STACK_NOT_FOUND.format(
             stack_name=self.stack_name, message=error.message))
         self.notify(DeploymentResponse.STATUS_FAILURE, error.message)
コード例 #2
0
ファイル: deployer.py プロジェクト: ImmobilienScout24/crassus
    def __init__(self, event, context):
        self.event = event
        logger.debug('Received event: %r', event)
        self.context = context
        logger.debug('Received context: %r', context)

        self.aws_cfn = boto3.resource('cloudformation')
        self.aws_sns = boto3.resource('sns')
        self.aws_lambda = boto3.client('lambda')

        self._output_topics = None
        self._cfn_output_topics = None
        self._stack_update_parameters = None
        self._stack_name = None
        self.stack = None
コード例 #3
0
ファイル: deployer.py プロジェクト: ImmobilienScout24/crassus
 def update(self):
     logger.debug('Parameters to be updated: %s', self.stack.parameters)
     merged = self.stack_update_parameters.merge(self.stack.parameters)
     logger.debug('Merged parameters: %s', merged)
     try:
         logger.debug('Will try to update Cloudformation')
         self.stack.update(
             UsePreviousTemplate=True,
             Parameters=merged,
             Capabilities=['CAPABILITY_IAM'],
             NotificationARNs=self.cfn_output_topics)
         message = 'Cloudformation was triggered successfully.'
         logger.debug(message)
         self.notify(DeploymentResponse.STATUS_SUCCESS, message)
     except ClientError as error:
         logger.error(MESSAGE_UPDATE_PROBLEM.format(
             stack_name=self.stack_name, message=error.message))
         self.notify(DeploymentResponse.STATUS_FAILURE, error.message)
コード例 #4
0
ファイル: deployer.py プロジェクト: ImmobilienScout24/crassus
 def parse_event(self):
     message = json.loads(self.event['Records'][0]['Sns']['Message'])
     self._stack_update_parameters = StackUpdateParameter(message)
     self._stack_name = self._stack_update_parameters.stack_name
     logger.debug('Extracted Update Parameters: %r',
                  self._stack_update_parameters)