def generate_cluster(config, cluster_name): """Generate a StreamAlert cluster file. Args: config (dict): The loaded config from the 'conf/' directory cluster_name (str): The name of the currently generating cluster Returns: dict: generated Terraform cluster dictionary """ modules = config['clusters'][cluster_name]['modules'] cluster_dict = infinitedict() generate_classifier(cluster_name, cluster_dict, config) generate_cluster_cloudwatch_metric_filters(cluster_name, cluster_dict, config) generate_cluster_cloudwatch_metric_alarms(cluster_name, cluster_dict, config) if modules.get('cloudwatch_monitoring', {}).get('enabled'): if not generate_monitoring(cluster_name, cluster_dict, config): return if modules.get('kinesis'): if not generate_kinesis_streams(cluster_name, cluster_dict, config): return if modules.get('kinesis_events'): if not generate_kinesis_events(cluster_name, cluster_dict, config): return if modules.get('cloudtrail'): if not generate_cloudtrail(cluster_name, cluster_dict, config): return # purposely not using .get, since no extra settings are required for this module if 'cloudwatch_events' in modules: if not generate_cloudwatch_events(cluster_name, cluster_dict, config): return if modules.get('cloudwatch_logs_destination'): if not generate_cloudwatch_destinations(cluster_name, cluster_dict, config): return if modules.get('flow_logs'): if not generate_flow_logs(cluster_name, cluster_dict, config): return if modules.get('s3_events'): if not generate_s3_events(cluster_name, cluster_dict, config): return generate_apps(cluster_name, cluster_dict, config) return cluster_dict
def test_kinesis_events(): """CLI - Terraform Generate Kinesis Events""" cluster_dict = common.infinitedict() result = kinesis_events.generate_kinesis_events('advanced', cluster_dict, CONFIG) expected_result = { 'module': { 'kinesis_events_advanced': { 'source': './modules/tf_kinesis_events', 'batch_size': 100, 'lambda_production_enabled': True, 'lambda_role_id': '${module.classifier_advanced_lambda.role_id}', 'lambda_function_alias_arn': ( '${module.classifier_advanced_lambda.function_alias_arn}' ), 'kinesis_stream_arn': '${module.kinesis_advanced.arn}', } } } assert_true(result) assert_equal(cluster_dict, expected_result)