From ba859a48f1081d160cf36888396e595bbb153208 Mon Sep 17 00:00:00 2001 From: Leigh B Stoller Date: Tue, 26 Oct 2010 17:22:58 -0600 Subject: [PATCH] Retry a few times to get the slice credential, if the slice is locked (busy). --- protogeni/test/test-common.py | 49 +++++++++++++++++++++++++++++------ 1 file changed, 41 insertions(+), 8 deletions(-) diff --git a/protogeni/test/test-common.py b/protogeni/test/test-common.py index 1361c60fa..982be8c74 100755 --- a/protogeni/test/test-common.py +++ b/protogeni/test/test-common.py @@ -316,12 +316,28 @@ def resolve_slice( name, selfcredential ): params["urn"] = name else: params["hrn"] = name - rval,response = do_method("sa", "Resolve", params) - if rval: - Fatal("Slice does not exist"); pass - else: - return response["value"] + + count = 2 + while True: + rval,response = do_method("sa", "Resolve", params) + if rval: + if rval == 14: + if count: + print " Will try again in a few seconds" + count = count - 1; + time.sleep(5.0) + else: + Fatal("Giving up, busy for too long"); + pass + else: + Fatal("Slice does not exist"); + pass + pass + else: + break + pass + return response["value"] def get_slice_credential( slice, selfcredential ): if slicecredentialfile: @@ -337,8 +353,25 @@ def get_slice_credential( slice, selfcredential ): params["urn"] = slice["urn"] else: params["uuid"] = slice["uuid"] - rval,response = do_method("sa", "GetCredential", params) - if rval: - Fatal("Could not get Slice credential") + pass + + count = 2 + while True: + rval,response = do_method("sa", "GetCredential", params) + if rval: + if rval == 14: + if count: + print " Will try again in a few seconds" + count = count - 1; + time.sleep(5.0) + else: + Fatal("Giving up, busy for too long"); + pass + else: + Fatal("Could not get Slice credential") + pass + pass + else: + break pass return response["value"] -- GitLab