| 
									
										
										
										
											2021-12-08 10:50:08 +09:00
										 |  |  | #!/bin/bash
 | 
					
						
							| 
									
										
										
										
											2020-12-02 20:49:34 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | set -e | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-11 15:41:42 -07:00
										 |  |  | : ${DATAHUB_ANALYTICS_ENABLED:=true} | 
					
						
							| 
									
										
										
										
											2021-05-12 10:54:18 -07:00
										 |  |  | : ${USE_AWS_ELASTICSEARCH:=false} | 
					
						
							| 
									
										
										
										
											2021-05-11 15:41:42 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-28 06:21:10 +03:00
										 |  |  | if [[ $ELASTICSEARCH_USE_SSL == true ]]; then | 
					
						
							|  |  |  |     ELASTICSEARCH_PROTOCOL=https | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |     ELASTICSEARCH_PROTOCOL=http | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-08 10:50:08 +09:00
										 |  |  | if [[ ! -z $ELASTICSEARCH_USERNAME ]] && [[ -z $ELASTICSEARCH_AUTH_HEADER ]]; then | 
					
						
							|  |  |  |   AUTH_TOKEN=$(echo -ne "$ELASTICSEARCH_USERNAME:$ELASTICSEARCH_PASSWORD" | base64 --wrap 0) | 
					
						
							|  |  |  |   ELASTICSEARCH_AUTH_HEADER="Authorization:Basic $AUTH_TOKEN" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Add default header if needed | 
					
						
							|  |  |  | if [[ -z $ELASTICSEARCH_AUTH_HEADER ]]; then | 
					
						
							|  |  |  |   ELASTICSEARCH_AUTH_HEADER="Accept: */*" | 
					
						
							| 
									
										
										
										
											2021-03-28 06:21:10 +03:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-08 15:11:40 -07:00
										 |  |  | function create_datahub_usage_event_datastream() { | 
					
						
							| 
									
										
										
										
											2021-04-13 07:56:31 -07:00
										 |  |  |   if [[ -z "$INDEX_PREFIX" ]]; then | 
					
						
							| 
									
										
										
										
											2021-07-08 15:11:40 -07:00
										 |  |  |     PREFIX='' | 
					
						
							| 
									
										
										
										
											2021-04-03 23:47:16 +05:30
										 |  |  |   else | 
					
						
							| 
									
										
										
										
											2021-07-08 15:11:40 -07:00
										 |  |  |     PREFIX="${INDEX_PREFIX}_" | 
					
						
							| 
									
										
										
										
											2021-04-03 23:47:16 +05:30
										 |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-08 10:50:08 +09:00
										 |  |  |   if [ $(curl -o /dev/null -s -w "%{http_code}" --header "$ELASTICSEARCH_AUTH_HEADER" "$ELASTICSEARCH_PROTOCOL://$ELASTICSEARCH_HOST:$ELASTICSEARCH_PORT/_ilm/policy/${PREFIX}datahub_usage_event_policy") -eq 404 ] | 
					
						
							| 
									
										
										
										
											2021-05-11 15:41:42 -07:00
										 |  |  |   then | 
					
						
							|  |  |  |     echo -e "\ncreating datahub_usage_event_policy" | 
					
						
							| 
									
										
										
										
											2021-07-08 15:11:40 -07:00
										 |  |  |     sed -e "s/PREFIX/${PREFIX}/g" /index/usage-event/policy.json | tee -a /tmp/policy.json | 
					
						
							| 
									
										
										
										
											2021-12-08 10:50:08 +09:00
										 |  |  |     curl -XPUT --header "$ELASTICSEARCH_AUTH_HEADER" "$ELASTICSEARCH_PROTOCOL://$ELASTICSEARCH_HOST:$ELASTICSEARCH_PORT/_ilm/policy/${PREFIX}datahub_usage_event_policy" -H 'Content-Type: application/json' --data @/tmp/policy.json | 
					
						
							| 
									
										
										
										
											2021-05-11 15:41:42 -07:00
										 |  |  |   else | 
					
						
							|  |  |  |     echo -e "\ndatahub_usage_event_policy exists" | 
					
						
							|  |  |  |   fi | 
					
						
							| 
									
										
										
										
											2021-12-08 10:50:08 +09:00
										 |  |  |   if [ $(curl -o /dev/null -s -w "%{http_code}" --header "$ELASTICSEARCH_AUTH_HEADER" "$ELASTICSEARCH_PROTOCOL://$ELASTICSEARCH_HOST:$ELASTICSEARCH_PORT/_index_template/${PREFIX}datahub_usage_event_index_template") -eq 404 ] | 
					
						
							| 
									
										
										
										
											2021-05-11 15:41:42 -07:00
										 |  |  |   then | 
					
						
							|  |  |  |     echo -e "\ncreating datahub_usage_event_index_template" | 
					
						
							| 
									
										
										
										
											2021-07-08 15:11:40 -07:00
										 |  |  |     sed -e "s/PREFIX/${PREFIX}/g" /index/usage-event/index_template.json | tee -a /tmp/index_template.json | 
					
						
							| 
									
										
										
										
											2021-12-08 10:50:08 +09:00
										 |  |  |     curl -XPUT --header "$ELASTICSEARCH_AUTH_HEADER" "$ELASTICSEARCH_PROTOCOL://$ELASTICSEARCH_HOST:$ELASTICSEARCH_PORT/_index_template/${PREFIX}datahub_usage_event_index_template" -H 'Content-Type: application/json' --data @/tmp/index_template.json | 
					
						
							| 
									
										
										
										
											2021-05-12 10:54:18 -07:00
										 |  |  |   else | 
					
						
							|  |  |  |     echo -e "\ndatahub_usage_event_index_template exists" | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function create_datahub_usage_event_aws_elasticsearch() { | 
					
						
							| 
									
										
										
										
											2021-07-08 15:11:40 -07:00
										 |  |  |   if [[ -z "$INDEX_PREFIX" ]]; then | 
					
						
							|  |  |  |     PREFIX='' | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     PREFIX="${INDEX_PREFIX}_" | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-08 10:50:08 +09:00
										 |  |  |   if [ $(curl -o /dev/null -s -w "%{http_code}" --header "$ELASTICSEARCH_AUTH_HEADER" "$ELASTICSEARCH_PROTOCOL://$ELASTICSEARCH_HOST:$ELASTICSEARCH_PORT/_opendistro/_ism/policies/${PREFIX}datahub_usage_event_policy") -eq 404 ] | 
					
						
							| 
									
										
										
										
											2021-05-12 10:54:18 -07:00
										 |  |  |   then | 
					
						
							|  |  |  |     echo -e "\ncreating datahub_usage_event_policy" | 
					
						
							| 
									
										
										
										
											2021-07-08 15:11:40 -07:00
										 |  |  |     sed -e "s/PREFIX/${PREFIX}/g" /index/usage-event/aws_es_ism_policy.json | tee -a /tmp/aws_es_ism_policy.json | 
					
						
							| 
									
										
										
										
											2021-12-08 10:50:08 +09:00
										 |  |  |     curl -XPUT --header "$ELASTICSEARCH_AUTH_HEADER" "$ELASTICSEARCH_PROTOCOL://$ELASTICSEARCH_HOST:$ELASTICSEARCH_PORT/_opendistro/_ism/policies/${PREFIX}datahub_usage_event_policy" -H 'Content-Type: application/json' --data @/tmp/aws_es_ism_policy.json | 
					
						
							| 
									
										
										
										
											2021-05-12 10:54:18 -07:00
										 |  |  |   else | 
					
						
							|  |  |  |     echo -e "\ndatahub_usage_event_policy exists" | 
					
						
							|  |  |  |   fi | 
					
						
							| 
									
										
										
										
											2021-12-08 10:50:08 +09:00
										 |  |  |   if [ $(curl -o /dev/null -s -w "%{http_code}" --header "$ELASTICSEARCH_AUTH_HEADER" "$ELASTICSEARCH_PROTOCOL://$ELASTICSEARCH_HOST:$ELASTICSEARCH_PORT/_template/${PREFIX}datahub_usage_event_index_template") -eq 404 ] | 
					
						
							| 
									
										
										
										
											2021-05-12 10:54:18 -07:00
										 |  |  |   then | 
					
						
							| 
									
										
										
										
											2022-07-14 22:04:06 +05:30
										 |  |  |     echo -e "\ncreating datahub_usage_event_index_template" | 
					
						
							| 
									
										
										
										
											2021-07-08 15:11:40 -07:00
										 |  |  |     sed -e "s/PREFIX/${PREFIX}/g" /index/usage-event/aws_es_index_template.json | tee -a /tmp/aws_es_index_template.json | 
					
						
							| 
									
										
										
										
											2021-12-08 10:50:08 +09:00
										 |  |  |     curl -XPUT --header "$ELASTICSEARCH_AUTH_HEADER" "$ELASTICSEARCH_PROTOCOL://$ELASTICSEARCH_HOST:$ELASTICSEARCH_PORT/_template/${PREFIX}datahub_usage_event_index_template" -H 'Content-Type: application/json' --data @/tmp/aws_es_index_template.json | 
					
						
							|  |  |  |     curl -XPUT --header "$ELASTICSEARCH_AUTH_HEADER" "$ELASTICSEARCH_PROTOCOL://$ELASTICSEARCH_HOST:$ELASTICSEARCH_PORT/${PREFIX}datahub_usage_event-000001"  -H 'Content-Type: application/json' --data "{\"aliases\":{\"${PREFIX}datahub_usage_event\":{\"is_write_index\":true}}}" | 
					
						
							| 
									
										
										
										
											2021-05-11 15:41:42 -07:00
										 |  |  |   else | 
					
						
							|  |  |  |     echo -e "\ndatahub_usage_event_index_template exists" | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [[ $DATAHUB_ANALYTICS_ENABLED == true ]]; then | 
					
						
							| 
									
										
										
										
											2021-05-12 10:54:18 -07:00
										 |  |  |   if [[ $USE_AWS_ELASTICSEARCH == false ]]; then | 
					
						
							|  |  |  |     create_datahub_usage_event_datastream || exit 1 | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     create_datahub_usage_event_aws_elasticsearch || exit 1 | 
					
						
							|  |  |  |   fi | 
					
						
							| 
									
										
										
										
											2021-05-11 15:41:42 -07:00
										 |  |  | fi |