7
7
8
8
source " $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd) /log.sh"
9
9
source " $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd) /aws.sh"
10
- source " $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd) /assertions .sh"
10
+ source " $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd) /assert .sh"
11
11
12
- # Get the name of the ASG this EC2 Instance is in
12
+ # Get the name of the ASG this EC2 Instance is in. This is done by looking up the instance's tags. This method will
13
+ # wait up until the specified number of retries if the tags or instances are not yet available.
13
14
function aws_wrapper_get_asg_name {
15
+ local readonly max_retries=" $1 "
16
+ local readonly sleep_between_retries=" $2 "
17
+
14
18
local instance_id
15
19
instance_id=$( aws_get_instance_id)
16
20
17
21
local instance_region
18
22
instance_region=$( aws_get_instance_region)
19
23
20
- aws_wrapper_get_instance_tag " $instance_id " " $instance_region " " aws:autoscaling:groupName"
24
+ aws_wrapper_get_instance_tag " $instance_id " " $instance_region " " aws:autoscaling:groupName" " $max_retries " " $sleep_between_retries "
21
25
}
22
26
23
27
# Look up the tags for the specified Instance and extract the value for the specified tag key
24
28
function aws_wrapper_get_instance_tag {
25
29
local readonly instance_id=" $1 "
26
30
local readonly instance_region=" $2 "
27
31
local readonly tag_key=" $3 "
28
-
29
- local readonly max_retries=60
30
- local readonly sleep_between_retries=5
32
+ local readonly max_retries=" ${4:- 60} "
33
+ local readonly sleep_between_retries=" ${5:- 5} "
31
34
32
35
for (( i= 0 ; i< "$max_retries "; i++ )) ; do
33
36
local tags
34
- tags=$( aws_wrapper_wait_for_instance_tags " $instance_id " " $instance_region " )
37
+ tags=$( aws_wrapper_wait_for_instance_tags " $instance_id " " $instance_region " " $max_retries " " $sleep_between_retries " )
35
38
assert_not_empty_or_null " $tags " " tags for Instance $instance_id in $instance_region "
36
39
37
40
local tag_value
@@ -57,12 +60,11 @@ function aws_wrapper_get_instance_tag {
57
60
function aws_wrapper_wait_for_instance_tags {
58
61
local readonly instance_id=" $1 "
59
62
local readonly instance_region=" $2 "
63
+ local readonly max_retries=" ${3:- 60} "
64
+ local readonly sleep_between_retries=" ${4:- 5} "
60
65
61
66
log_info " Looking up tags for Instance $instance_id in $instance_region "
62
67
63
- local readonly max_retries=60
64
- local readonly sleep_between_retries=5
65
-
66
68
for (( i= 0 ; i< "$max_retries "; i++ )) ; do
67
69
local tags
68
70
tags=$( aws_get_instance_tags " $instance_id " " $instance_region " )
@@ -88,9 +90,8 @@ function aws_wrapper_wait_for_instance_tags {
88
90
function aws_wrapper_get_asg_size {
89
91
local readonly asg_name=" $1 "
90
92
local readonly aws_region=" $2 "
91
-
92
- local readonly max_retries=60
93
- local readonly sleep_between_retries=5
93
+ local readonly max_retries=" ${3:- 60} "
94
+ local readonly sleep_between_retries=" ${4:- 5} "
94
95
95
96
for (( i= 0 ; i< "$max_retries "; i++ )) ; do
96
97
log_info " Looking up the size of the Auto Scaling Group $asg_name in $aws_region "
@@ -121,12 +122,12 @@ function aws_wrapper_get_asg_size {
121
122
function aws_wrapper_wait_for_instances_in_asg {
122
123
local readonly asg_name=" $1 "
123
124
local readonly aws_region=" $2 "
125
+ local readonly max_retries=" ${3:- 60} "
126
+ local readonly sleep_between_retries=" ${4:- 5} "
124
127
125
128
local asg_size
126
- asg_size=$( aws_wrapper_get_asg_size " $asg_name " " $aws_region " )
127
-
128
- local readonly max_retries=60
129
- local readonly sleep_between_retries=5
129
+ asg_size=$( aws_wrapper_get_asg_size " $asg_name " " $aws_region " " $max_retries " " $sleep_between_retries " )
130
+ assert_not_empty_or_null " $asg_size " " size of ASG $asg_name in $aws_region "
130
131
131
132
log_info " Looking up Instances in ASG $asg_name in $aws_region "
132
133
for (( i= 0 ; i< "$max_retries "; i++ )) ; do
@@ -157,9 +158,11 @@ function aws_wrapper_get_ips_in_asg {
157
158
local readonly asg_name=" $1 "
158
159
local readonly aws_region=" $2 "
159
160
local readonly use_public_ips=" $3 "
161
+ local readonly max_retries=" ${4:- 60} "
162
+ local readonly sleep_between_retries=" ${5:- 5} "
160
163
161
164
local instances
162
- instances=$( aws_describe_instances_in_asg " $asg_name " " $aws_region " )
165
+ instances=$( aws_wrapper_wait_for_instances_in_asg " $asg_name " " $aws_region " " $max_retries " " $sleep_between_retries " )
163
166
assert_not_empty_or_null " $instances " " Get info about Instances in ASG $asg_name in $aws_region "
164
167
165
168
local readonly ip_param=$( [[ " $use_public_ips " == " true" ]] && echo " PublicIpAddress" || echo " PrivateIpAddress" )
@@ -172,9 +175,11 @@ function aws_wrapper_get_hostnames_in_asg {
172
175
local readonly asg_name=" $1 "
173
176
local readonly aws_region=" $2 "
174
177
local readonly use_public_hostnames=" $3 "
178
+ local readonly max_retries=" ${4:- 60} "
179
+ local readonly sleep_between_retries=" ${5:- 5} "
175
180
176
181
local instances
177
- instances=$( aws_wrapper_wait_for_instances_in_asg " $asg_name " " $aws_region " )
182
+ instances=$( aws_wrapper_wait_for_instances_in_asg " $asg_name " " $aws_region " " $max_retries " " $sleep_between_retries " )
178
183
assert_not_empty_or_null " $instances " " Get info about Instances in ASG $asg_name in $aws_region "
179
184
180
185
local readonly hostname_param=$( [[ " $use_public_hostnames " == " true" ]] && echo " PublicDnsName" || echo " PrivateDnsName" )
0 commit comments