adding error handling to gswauth-cleanup-tokens tool
added input validation for a couple of options and error handling in case a non-existing account name is provided Change-Id: I6d703d584552fc7b7574f34e79ed25a2982b6d5e Signed-off-by: Thiago da Silva <thiago@redhat.com> Reviewed-on: http://review.gluster.org/6767 Reviewed-by: Prashanth Pai <ppai@redhat.com> Tested-by: Prashanth Pai <ppai@redhat.com> Reviewed-by: pushpesh sharma <psharma@redhat.com> Tested-by: pushpesh sharma <psharma@redhat.com> Reviewed-by: Chetan Risbud <crisbud@redhat.com>
This commit is contained in:
parent
ec2c548af9
commit
3ee9a70402
@ -60,19 +60,39 @@ if __name__ == '__main__':
|
||||
parser.parse_args(['-h'])
|
||||
if options.admin_key is None:
|
||||
parser.parse_args(['-h'])
|
||||
|
||||
options.admin_url = options.admin_url.rstrip('/')
|
||||
if not options.admin_url.endswith('/v1.0'):
|
||||
options.admin_url += '/v1.0'
|
||||
options.admin_user = '.super_admin:.super_admin'
|
||||
options.token_life = timedelta(0, float(options.token_life))
|
||||
options.sleep = float(options.sleep)
|
||||
|
||||
try:
|
||||
options.token_life = timedelta(0, float(options.token_life))
|
||||
options.sleep = float(options.sleep)
|
||||
except ValueError:
|
||||
parser.parse_args(['-h'])
|
||||
|
||||
conn = Connection(options.admin_url, options.admin_user, options.admin_key)
|
||||
if options.purge_account:
|
||||
marker = None
|
||||
while True:
|
||||
if options.verbose:
|
||||
print 'GET %s?marker=%s' % (options.purge_account, marker)
|
||||
objs = conn.get_container(options.purge_account, marker=marker)[1]
|
||||
try:
|
||||
objs = conn.get_container(options.purge_account,
|
||||
marker=marker)[1]
|
||||
except ClientException, e:
|
||||
if e.http_status == 404:
|
||||
exit('Account %s not found.' % (options.purge_account))
|
||||
elif e.http_status == 401:
|
||||
exit('Cleanup tokens failed: 401 Unauthorized: ' \
|
||||
'Invalid user/key provided')
|
||||
else:
|
||||
exit('Purging %s failed with status '
|
||||
'code %d' % (options.purge_account, e.http_status))
|
||||
except socket.error, (errno, msg):
|
||||
exit('Token clean-up failed: %s. ' \
|
||||
'Check that the admin_url is valid' % msg)
|
||||
if objs:
|
||||
marker = objs[-1]['name']
|
||||
else:
|
||||
@ -112,7 +132,8 @@ if __name__ == '__main__':
|
||||
exit('Container %s not found. gswauth-prep needs to be '
|
||||
'rerun' % (container))
|
||||
elif e.http_status == 401:
|
||||
exit('Cleanup tokens failed: 401 Unauthorized: Invalid user/key provided')
|
||||
exit('Cleanup tokens failed: 401 Unauthorized: ' \
|
||||
'Invalid user/key provided')
|
||||
else:
|
||||
exit('Object listing on container %s failed with status '
|
||||
'code %d' % (container, e.http_status))
|
||||
|
@ -766,15 +766,11 @@ class TestCleanUPToken(unittest.TestCase):
|
||||
#https://bugs.launchpad.net/gluster-swift/+bug/1271550
|
||||
#cleanup token with token-life option non numeric value
|
||||
(status,output)=Utils.cleanToken(option='token-life', value='notanumaric')
|
||||
self.assertNotEqual(status, 0, 'clean up success with token-life option token-life non numeric value'+output)
|
||||
self.assertEqual('ValueError' in output,True, 'clean up \
|
||||
success with token-life option non numeric value: '+output)
|
||||
self.assertEqual('Usage:' in output, True, 'clean up success with token-life option non numeric value'+output)
|
||||
|
||||
#cleanup token with sleep option non numeric value
|
||||
(status,output)=Utils.cleanToken(option='sleep', value='notanumeric')
|
||||
self.assertNotEqual(status, 0, 'clean up failed with sleep option non numeric value'+output)
|
||||
self.assertEqual('ValueError' in output,True, 'clean up \
|
||||
success with token-life option non numeric value: '+output)
|
||||
self.assertEqual('Usage:' in output, True, 'clean up success with sleep option non numeric value'+output)
|
||||
|
||||
def testSetAccountService(self):
|
||||
self.setTestAccUserEnv()
|
||||
|
Loading…
Reference in New Issue
Block a user