in source/msam/db/lambda_function.py [0:0]
def make_default_settings(settings_table):
"""
This function is responsible for adding/replacing default settings in the specified DynamoDB table.
"""
ec2_client = boto3.client("ec2")
dynamodb_resource = boto3.resource("dynamodb")
# determine the current region
session = boto3.session.Session()
current_region = session.region_name
print("current region is {}".format(current_region))
# get all regions
all_regions = ec2_client.describe_regions()
# create a list of all regions except the current
never_cache_regions = []
for region in all_regions['Regions']:
region_name = region['RegionName']
if region_name != current_region:
never_cache_regions.append(region_name)
print("never-cache-regions are {}".format(json.dumps(never_cache_regions)))
# update the DynamoDB table
table = dynamodb_resource.Table(settings_table)
# default app-alarm-update-interval
try:
table.put_item(Item={"id": "app-alarm-update-interval", "value": 10}, ConditionExpression="attribute_not_exists(id)")
print("added default app-alarm-update-interval setting")
except ClientError:
print("app-alarm-update-interval setting exists")
# default app-event-update-interval
try:
table.put_item(Item={"id": "app-event-update-interval", "value": 10}, ConditionExpression="attribute_not_exists(id)")
print("added default app-event-update-interval setting")
except ClientError:
print("app-event-update-interval setting exists")
# default app-tile-update-interval
try:
table.put_item(Item={"id": "app-tile-update-interval", "value": 300}, ConditionExpression="attribute_not_exists(id)")
print("added default app-tile-update-interval setting")
except ClientError:
print("app-tile-update-interval setting exists")
# default displayed regions
try:
table.put_item(Item={"id": "regions", "value": [current_region]}, ConditionExpression="attribute_not_exists(id)")
print("added default regions setting")
except ClientError:
print("regions setting exists")
# never-cache-regions
try:
table.put_item(Item={"id": "never-cache-regions", "value": never_cache_regions}, ConditionExpression="attribute_not_exists(id)")
print("added default never-cache-regions setting")
except ClientError:
print("never-cache-regions setting exists")
# layout-method
try:
table.put_item(Item={"id": "layout-method", "value": {"method": "directed"}}, ConditionExpression="attribute_not_exists(id)")
print("added default layout-method setting")
except ClientError:
print("layout-method setting exists")
# default tile-view
try:
table.put_item(Item={"id": "tile-view", "value": {"show_normal_tiles": True, "show_alarm_tiles": True, "tile_filter_text": "Showing All Tiles"}}, ConditionExpression="attribute_not_exists(id)")
print("added default tile-view setting")
except ClientError:
print("tile-view setting exists")