@@ -114,16 +114,20 @@ def bucket_remove(self, bucket_name):
114114 helper_lib .sleepForSecond (2 )
115115
116116 def bucket_create (
117- self , bucket_name , ram_size , bucket_type , bucket_compression
117+ self ,
118+ bucket_name ,
119+ ram_size ,
120+ bucket_type ,
121+ bucket_compression ,
122+ retry : bool = True ,
118123 ):
119- logger .debug ("Creating bucket: {} " . format ( bucket_name ) )
124+ logger .debug (f "Creating bucket: { bucket_name } " )
120125 # To create the bucket with given ram size
121126 self .__validate_bucket_name (bucket_name )
122127 if ram_size is None :
123128 logger .debug (
124- "Needed ramsize for bucket_create. Currently it is: {}" .format (
125- ram_size
126- )
129+ "Needed ramsize for bucket_create. "
130+ f"Currently it is: { ram_size } "
127131 )
128132 return
129133
@@ -132,9 +136,7 @@ def bucket_create(
132136 bucket_type = "couchbase"
133137
134138 if bucket_compression is not None :
135- bucket_compression = "--compression-mode {}" .format (
136- bucket_compression
137- )
139+ bucket_compression = f"--compression-mode { bucket_compression } "
138140 else :
139141 bucket_compression = ""
140142
@@ -150,18 +152,38 @@ def bucket_create(
150152 evictionpolicy = policy ,
151153 bucket_type = bucket_type ,
152154 bucket_compression = bucket_compression ,
153- ** env
155+ ** env ,
154156 )
155- logger .debug ("create bucket {}" . format ( command ) )
157+ logger .debug (f "create bucket { command } for { bucket_name } " )
156158 kwargs [ENV_VAR_KEY ].update (env_vars )
157159 output , error , exit_code = utilities .execute_expect (
158160 self .connection , command , ** kwargs
159161 )
160162 logger .debug (
161- "create bucket output: {} {} {}" .format (output , error , exit_code )
163+ f"create bucket output for { bucket_name } : "
164+ f"{ output } { error } { exit_code } "
162165 )
163166 helper_lib .sleepForSecond (2 )
164167
168+ bucket_list = self .bucket_list ()
169+ bucket_name_list = [item ["name" ] for item in bucket_list ]
170+ if bucket_name not in bucket_name_list and retry :
171+ self .bucket_create (
172+ bucket_name = bucket_name ,
173+ ram_size = ram_size ,
174+ bucket_type = bucket_type ,
175+ bucket_compression = bucket_compression ,
176+ retry = False ,
177+ )
178+ elif bucket_name not in bucket_name_list :
179+ error_message = f"Bucket creation failed for { bucket_name } " + (
180+ ", even after retry." if retry else "."
181+ )
182+ logger .error (error_message )
183+ raise BucketOperationError (error_message )
184+
185+ logger .debug (f"Bucket creation successful for { bucket_name } ." )
186+
165187 def bucket_list (self , return_type = list ):
166188 # See the all bucket.
167189 # It will return also other information like ramused, ramsize etc
@@ -249,7 +271,7 @@ def monitor_bucket(self, bucket_name, staging_UUID):
249271 source_port = self .source_config .couchbase_src_port ,
250272 bucket_name = bucket_name ,
251273 uuid = staging_UUID ,
252- ** env
274+ ** env ,
253275 )
254276 kwargs [ENV_VAR_KEY ].update (env_vars )
255277 stdout , stderr , exit_code = utilities .execute_expect (
0 commit comments