def authenticate(username, password, tenant = nil)
                  data = {
                          "auth" => { 
                                  "passwordCredentials" => { 
                                          "username" => username, 
                                          "password" => password 
                                  } 
                          } 
                  }
                  unless tenant.nil?
                          data["auth"]["tenantName"] = tenant
                  end
                  @data = post_request(address("/tokens"), data, @token)
          end
def authenticate(username, password, tenant = nil)
                  data = {
                          "auth" => { 
                                  "passwordCredentials" => { 
                                          "username" => username, 
                                          "password" => password 
                                  } 
                          } 
                  }
                  unless tenant.nil?
                          data["auth"]["tenantName"] = tenant
                  end
                  @data = post_request(address("/tokens"), data, @token)
          end
Authenticate via keystone, unless a token and tenant are defined then a unscoped
 token is returned with all associated data and stored in the @data variable.
 Does not return anything, but all data is accessible through accessor methods.