class SauceWhisk::Accounts
def self.concurrency_for(job_id = ENV["SAUCE_USERNAME"], type = :both)
def self.concurrency_for(job_id = ENV["SAUCE_USERNAME"], type = :both) concurrencies = JSON.parse (get "#{job_id}/limits"), :symbolize_names => true case type when :mac return concurrencies[:mac_concurrency] when :total return concurrencies[:concurrency] else return {:mac_concurrency => concurrencies[:mac_concurrency], :total_concurrency => concurrencies[:concurrency] } end end
def self.create_subaccount(parent, name, username, email, password)
def self.create_subaccount(parent, name, username, email, password) payload = { :username => username, :password => password, :name => name, :email => email } begin response = post :resource => "users/#{parent.username}", :payload => payload rescue RestClient::BadRequest => e decoded_body = JSON.parse e.http_body, :symbolize_names => true raise SubAccountCreationError, decoded_body[:errors] rescue RestClient::ResourceNotFound => e raise InvalidAccountError, "Parent account #{parent.username} does not exist" end new_subaccount = SubAccount.new parent, JSON.parse(response) end
def self.fetch(user_id = ENV["SAUCE_USERNAME"], get_concurrency = true)
def self.fetch(user_id = ENV["SAUCE_USERNAME"], get_concurrency = true) user_parameters = JSON.parse (get "users/#{user_id}"), :symbolize_names => true concurrencies = get_concurrency ? concurrency_for(user_id) : {} account_parameters = user_parameters.merge concurrencies return Account.new(account_parameters) rescue RestClient::ResourceNotFound raise InvalidAccountError, "Account #{user_id} does not exist" end