@@ -1629,13 +1629,20 @@ def time_to_list_via_boto(bucket_name, rgw):
1629
1629
return time_taken
1630
1630
1631
1631
1632
- def check_sync_status (retry = None , delay = None ):
1632
+ def check_sync_status (retry = 25 , delay = 60 , return_while_sync_inprogress = False ):
1633
1633
"""
1634
1634
Check sync status if its a multisite cluster
1635
1635
"""
1636
1636
is_multisite = utils .is_cluster_multisite ()
1637
1637
if is_multisite :
1638
- sync_status ()
1638
+ if return_while_sync_inprogress :
1639
+ out = sync_status (
1640
+ retry , delay , return_while_sync_inprogress = return_while_sync_inprogress
1641
+ )
1642
+ return out
1643
+ sync_status (
1644
+ retry , delay , return_while_sync_inprogress = return_while_sync_inprogress
1645
+ )
1639
1646
1640
1647
1641
1648
def check_bucket_sync_status (bkt = None ):
@@ -3082,3 +3089,78 @@ def node_reboot(node, service_name=None, retry=15, delay=60):
3082
3089
break
3083
3090
if retry_count + 1 == retry :
3084
3091
raise AssertionError ("Node is not in expected state post 15min!!" )
3092
+
3093
+
3094
+ def bring_down_all_rgws_in_the_site (rgw_service_name , retry = 10 , delay = 10 ):
3095
+ """
3096
+ Method to bring down rgw services in all the nodes
3097
+ rgw_service_name: RGW service name
3098
+ """
3099
+ cmd = f"ceph orch stop { rgw_service_name } "
3100
+ utils .exec_shell_cmd (cmd )
3101
+ cmd = "ceph orch ps --format json-pretty"
3102
+ out = json .loads (utils .exec_shell_cmd (cmd ))
3103
+ for entry in out :
3104
+ daemon = entry ["daemon_name" ].split ("." )[0 ]
3105
+ log .info (f"daemon type is { daemon } " )
3106
+ if daemon == "rgw" :
3107
+ service_name = entry ["daemon_name" ]
3108
+ log .info (f"daemon is { service_name } " )
3109
+ if rgw_service_name in service_name :
3110
+ status = entry ["status_desc" ]
3111
+ if str (status ) == "running" :
3112
+ log .info (f"enter loop of retry" )
3113
+ for retry_count in range (retry ):
3114
+ log .info (f"try { retry_count } " )
3115
+ out = json .loads (utils .exec_shell_cmd (cmd ))
3116
+ for entry in out :
3117
+ if service_name == entry ["daemon_name" ]:
3118
+ status = entry ["status_desc" ]
3119
+ log .info (f"status is { status } " )
3120
+ if str (status ) == "running" :
3121
+ log .info (
3122
+ f"Node is not in expected state, waiting for { delay } seconds"
3123
+ )
3124
+ time .sleep (delay )
3125
+ else :
3126
+ log .info (f"Node { service_name } is in expected state" )
3127
+ break
3128
+ if retry_count + 1 == retry :
3129
+ raise AssertionError ("Node is not in expected state!!" )
3130
+
3131
+
3132
+ def bring_up_all_rgws_in_the_site (rgw_service_name , retry = 10 , delay = 10 ):
3133
+ """
3134
+ Method to bring up rgw services in all the nodes
3135
+ """
3136
+ cmd = f"ceph orch start { rgw_service_name } "
3137
+ utils .exec_shell_cmd (cmd )
3138
+ cmd = "ceph orch ps --format json-pretty"
3139
+ out = json .loads (utils .exec_shell_cmd (cmd ))
3140
+ for entry in out :
3141
+ daemon = entry ["daemon_name" ].split ("." )[0 ]
3142
+ log .info (f"daemon type is { daemon } " )
3143
+ if daemon == "rgw" :
3144
+ service_name = entry ["daemon_name" ]
3145
+ log .info (f"daemon is { service_name } " )
3146
+ if rgw_service_name in service_name :
3147
+ status = entry ["status_desc" ]
3148
+ if str (status ) != "running" :
3149
+ log .info (f"enter loop of retry" )
3150
+ for retry_count in range (retry ):
3151
+ log .info (f"try { retry_count } " )
3152
+ out = json .loads (utils .exec_shell_cmd (cmd ))
3153
+ for entry in out :
3154
+ if service_name == entry ["daemon_name" ]:
3155
+ status = entry ["status_desc" ]
3156
+ log .info (f"status is { status } " )
3157
+ if str (status ) != "running" :
3158
+ log .info (
3159
+ f"Node is not in expected state, waiting for { delay } seconds"
3160
+ )
3161
+ time .sleep (delay )
3162
+ else :
3163
+ log .info (f"Node { service_name } is in expected state" )
3164
+ break
3165
+ if retry_count + 1 == retry :
3166
+ raise AssertionError ("Node is not in expected state!!" )
0 commit comments