@@ -37,7 +37,7 @@ random_string=$(generate_random_string)
37
37
# Print the generated random string
38
38
echo " Random String: $random_string "
39
39
40
- SERVICE_NAME=" ${AGENCY} - ${ CONTAINER_NAME} -service-${random_string} "
40
+ SERVICE_NAME=" ${CONTAINER_NAME} -service-test "
41
41
EXTERNAL_IP=$( echo " $2 " | tr -d ' [:space:]' )
42
42
ADMIN_PORT_FILE=" $PWD /agent-provisioning/AFJ/port-file/last-admin-port.txt"
43
43
INBOUND_PORT_FILE=" $PWD /agent-provisioning/AFJ/port-file/last-inbound-port.txt"
@@ -153,7 +153,7 @@ CONTAINER_DEFINITIONS=$(
153
153
[
154
154
{
155
155
"name": "$CONTAINER_NAME ",
156
- "image": "${AFJ_IMAGE_URL } ",
156
+ "image": "${AFJ_VERSION } ",
157
157
"cpu": 154,
158
158
"memory": 307,
159
159
"portMappings": [
@@ -194,6 +194,14 @@ CONTAINER_DEFINITIONS=$(
194
194
}
195
195
],
196
196
"volumesFrom": [],
197
+ "logConfiguration": {
198
+ "logDriver": "awslogs",
199
+ "options": {
200
+ "awslogs-group": "/ecs/$TESKDEFINITION_FAMILY ",
201
+ "awslogs-create-group": "true",
202
+ "awslogs-region": "ap-south-1",
203
+ "awslogs-stream-prefix": "ecs"
204
+ },
197
205
"ulimits": []
198
206
}
199
207
]
@@ -262,6 +270,67 @@ if [ $? -eq 0 ]; then
262
270
sleep 10
263
271
fi
264
272
done
273
+ # Describe the ECS service and filter by service name
274
+ service_description=$( aws ecs describe-services --service $SERVICE_NAME --cluster $CLUSTER_NAME --region $AWS_PUBLIC_REGION )
275
+ echo " service_description=$service_description "
276
+
277
+
278
+ # Extract Task ID from the service description events
279
+ task_id=$( echo " $service_description " | jq -r ' .services[0].events[] | select(.message | test("has started 1 tasks")) | .message | capture("\\(task (?<id>[^)]+)\\)") | .id' )
280
+ # echo "task_id=$task_id"
281
+
282
+ # to fetch log group of container
283
+ .............................................................
284
+ log_group=/ecs/$TESKDEFINITION_FAMILY
285
+ echo " log_group=$log_group "
286
+
287
+ # Get Log Stream Name
288
+ log_stream=ecs/$CONTAINER_NAME /$task_id
289
+
290
+ echo " logstrem=$log_stream "
291
+
292
+
293
+ # Fetch logs
294
+ # echo "$(aws logs get-log-events --log-group-name "/ecs/$TESKDEFINITION_FAMILY/$CONTAINER_NAME" --log-stream-name "$log_stream" --region $AWS_PUBLIC_REGION)"
295
+
296
+ # Check if the token folder exists, and create it if it doesn't
297
+ token_folder=" $PWD /agent-provisioning/AFJ/token"
298
+ if [ ! -d " $token_folder " ]; then
299
+ mkdir -p " $token_folder "
300
+ fi
301
+
302
+ # Set maximum retry attempts
303
+ RETRIES=3
304
+
305
+ # Loop to attempt retrieving token from logs
306
+ # Loop to attempt retrieving token from logs
307
+ for attempt in $( seq 1 $RETRIES ) ; do
308
+ echo " Attempt $attempt : Checking service logs for token..."
309
+
310
+ # Fetch logs and grep for API token
311
+ token=$( aws logs get-log-events \
312
+ --log-group-name " $log_group " \
313
+ --log-stream-name " $log_stream " \
314
+ --region ap-southeast-1 \
315
+ | grep -o ' *** API Key: [^ ]*' \
316
+ | cut -d ' ' -f 3
317
+ )
318
+ # echo "token=$token"
319
+ if [ -n " $token " ]; then
320
+ echo " Token found: $token "
321
+ # Write token to a file
322
+ echo " {\" token\" : \" $token \" }" > " $PWD /agent-provisioning/AFJ/token/${AGENCY} _${CONTAINER_NAME} .json"
323
+ break # Exit loop if token is found
324
+ else
325
+ echo " Token not found in logs. Retrying..."
326
+ if [ $attempt -eq $RETRIES ]; then
327
+ echo " Reached maximum retry attempts. Token not found."
328
+ fi
329
+ fi
330
+ # Add a delay of 10 seconds between retries
331
+ sleep 10
332
+ done
333
+
265
334
266
335
echo " Creating agent config"
267
336
cat << EOF >${PWD} /agent-provisioning/AFJ/endpoints/${AGENCY} _${CONTAINER_NAME} .json
273
342
274
343
cat << EOF >${PWD} /agent-provisioning/AFJ/token/${AGENCY} _${CONTAINER_NAME} .json
275
344
{
276
- "token" : ""
345
+ "token" : "$token "
277
346
}
278
347
EOF
279
348
0 commit comments