in provisioning_lambda/lambda_function.py [0:0]
def get_config():
with open('config.json') as f:
config = json.load(f)
if set(config.keys()) != set(['certificate', 'iot']):
raise ConfigError('Invalid config')
# check certificate config
if set(config.get('certificate', {}).keys()) != set(['subject', 'validity']):
raise ConfigError('Invalid certificate config')
subject = config['certificate']['subject']
if subject.keys() != set(['CN', 'O', 'OU', 'L', 'ST', 'C']):
raise ConfigError('Invalid certificate subject')
for subject_key, subject_value in subject.items():
if not type(subject_value) is str:
raise ConfigError('Invalid certificate subject: %s' % subject_key)
validity = config['certificate'].get('validity')
if not type(validity) is int:
raise ConfigError('Invalid certificate validity')
# check iot config
if set(config.get('iot', {}).keys()) != set(['certValidity', 'thingPrefix', 'thingGroup']):
raise ConfigError('Invalid iot config')
for key, value in config['iot'].items():
if key == 'certValidity':
if not type(value) is int:
raise ConfigError('Invalid iot certValidity')
elif not type(value) is str:
raise ConfigError('Invalid iot config: %s' % key)
return config