From 11f4d323d88e06c632ff29923d50a77deeb85e34 Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Wed, 6 Jul 2016 08:41:42 +0200 Subject: Retry on login error when creating API key Signed-off-by: Florian Pritz --- fb.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'fb.py') diff --git a/fb.py b/fb.py index 48b34f4..85dd375 100755 --- a/fb.py +++ b/fb.py @@ -775,12 +775,24 @@ class FBClient: localuser = getpass.getuser() data = [] - data.append({'username': self.get_input("Username: ")}) - data.append({'password': self.get_input("Password: ", display=False)}) - data.append({'comment': "fb-client %s@%s" % (localuser, hostname)}) - data.append({'access_level': "apikey"}) + while True: + data.append({'username': self.get_input("Username: ")}) + data.append({'password': self.get_input("Password: ", display=False)}) + data.append({'comment': "fb-client %s@%s" % (localuser, hostname)}) + data.append({'access_level': "apikey"}) + + try: + resp = self.curlw.send_post_noauth('/user/create_apikey', data) + # break out of while loop on success + break + except APIException as e: + if e.error_id == 'user/login-failed': + eprint(e) + eprint("\nPlease try again:") + continue + else: + raise - resp = self.curlw.send_post_noauth('/user/create_apikey', data) self.makedirs(os.path.dirname(self.config['apikey_file'])) with open(self.config['apikey_file'], 'w') as outfile: -- cgit v1.2.3-24-g4f1b