def authenticateUserAndReturnHisSessionToken(self, username, password):
     loginResult = smk_api.login(username, password)
     if loginResult.succeeded :
         client = loginResult.result
         sessionToken = self.newSessionId()
         self.authenticatedClients[sessionToken] = client
         return smk_api.ActionSucceeded(sessionToken)
     else:
         return smk_api.ActionFailed(loginResult.result)
def smkAction(action):
    client=smk_api.login(adapter_context.TEST_SMK_LOGIN, adapter_context.TEST_SMK_PASSWORD).result
    client.client.add_global_handler(global_callback)

    try:
        LOG.info("[action result] %s"%str(action(client).result))
    except:
        LOG.error("**********error occured")
        LOG.error("Unexpected error: %s", traceback.format_exc())
        
    finally:
        client.logout()