in source/state_machine_handler.py [0:0]
def put_item(self):
try:
self.logger.info("Executing: " + self.__class__.__name__ + "/" + inspect.stack()[0][3])
ddb = DDB(self.logger, environ.get('TABLE_NAME'))
item = {
"SubnetId": self.is_none(self.event.get('SubnetId')),
"Version": self.is_none(str(self.event.get('detail', {}).get('version'))),
"AvailabilityZone": self.is_none(self.event.get('AvailabilityZone')),
"VpcId": self.is_none(self.event.get('VpcId')),
"TgwId": self.is_none(environ.get('TGW_ID')),
"PropagationRouteTables": self.event.get(environ.get('PROPAGATION_TAG')),
"PropagationRouteTablesString": 'None' if self.event.get(environ.get('PROPAGATION_TAG')) is None else ','.join(self.event.get(environ.get('PROPAGATION_TAG'))),
"TagEventSource": self.is_none(self.event.get('TagEventSource')),
"VpcCidr": self.is_none(self.event.get('VpcCidr')),
"Action": self.is_none(self.event.get('Action')),
"Status": self.is_none(self.event.get('Status')),
"AWSSpokeAccountId": self.is_none(self.event.get('account')),
"UserId": "StateMachine" if self.event.get('UserId') is None else self.event.get('UserId'),
"AssociationRouteTable": self.event.get(environ.get('ASSOCIATION_TAG')),
"RequestTimeStamp": self.event.get('time'),
"ResponseTimeStamp": current_time() if self.event.get(
'GraphQLTimeStamp') is None else self.event.get('GraphQLTimeStamp'),
"TimeToLive": self._get_time_to_live(self.event.get('time')),
"Comment": self.is_none(self.event.get('Comment'))
}
self.logger.info(item)
# add item to the DDB table with version in event
ddb.put_item(item)
item.update({'Version': 'latest'})
ddb.put_item(item)
# send anonymous metrics
gf = GeneralFunctions(self.event, self.logger)
gf.send_anonymous_data()
return self.event
except Exception as e:
message = {'FILE': __file__.split('/')[-1], 'CLASS': self.__class__.__name__,
'METHOD': inspect.stack()[0][3], 'EXCEPTION': str(e)}
self.logger.exception(message)
raise