Parent

Class/Module Index [+]

Quicksearch

OpenShift::BillingService

Generic Billing provider service interface Currently, this interface is consumed by oo-admin-ctl-usage

Attributes

error_count[RW]
log[RW]
warning_count[RW]

Public Class Methods

instance() click to toggle source
# File lib/openshift/billing_service.rb, line 12
def self.instance
  @oo_billing_provider.new
end
new() click to toggle source
# File lib/openshift/billing_service.rb, line 16
def initialize
  @log = nil
  @error_count = 0
  @warning_count = 0
end
provider=(provider_class) click to toggle source
# File lib/openshift/billing_service.rb, line 8
def self.provider=(provider_class)
  @oo_billing_provider = provider_class
end

Public Instance Methods

check_inconsistencies(user_hash, summary, verbose) click to toggle source
# File lib/openshift/billing_service.rb, line 116
def check_inconsistencies(user_hash, summary, verbose)
end
check_usage_consistency(session, srec) click to toggle source

Check UsageRecord and Usage collection consistency

# File lib/openshift/billing_service.rb, line 79
def check_usage_consistency(session, srec)
  usage = session[:usage].find(user_id: srec['user_id'], gear_id: srec['gear_id'],
                  usage_type: srec['usage_type'], created_at: srec['created_at']).first
  if usage.nil?
    print_warning "Record NOT found in Usage collection.", srec
    usage = Usage.new
    usage.user_id = srec['user_id']
    usage.gear_id = srec['gear_id']
    usage.usage_type = srec['usage_type']
    usage.app_name = srec['app_name']
    usage.begin_time = srec['time']
    usage.gear_size = srec['gear_size']
    usage.addtl_fs_gb = srec['addtl_fs_gb']
    usage.cart_name = srec['cart_name']
    usage.end_time = srec['end_time'] if srec['ended']
    usage.save!
  elsif srec['ended'] && usage['end_time'].nil?
    print_warning "End time NOT set in Usage collection.", srec
    session.with(safe:true)[:usage].find(_id: usage['_id']).update({"$set" => {end_time: srec['end_time']}})
  end
end
delete_ended_urecs(session, srecs) click to toggle source

For ended usage records: delete from mongo

# File lib/openshift/billing_service.rb, line 102
def delete_ended_urecs(session, srecs)
  return if srecs.empty?
  user_ids = []
  srecs.each do |srec|
    if srec['ended']
      check_usage_consistency(session, srec)
      user_ids << srec['_id']
      user_ids << srec['end_id'] if srec['end_id']
    end
  end
  # Deleting ended usage records
  session.with(safe:true)[:usage_records].find({_id: {"$in" => user_ids}}).remove_all unless user_ids.empty?
end
display_check_help() click to toggle source
# File lib/openshift/billing_service.rb, line 119
def display_check_help
end
get_plans() click to toggle source
# File lib/openshift/billing_service.rb, line 58
def get_plans
end
get_provider_name() click to toggle source
# File lib/openshift/billing_service.rb, line 55
def get_provider_name
end
get_uid(urec) click to toggle source

Unique usage id that can be used to narrow down to specific set of records. This will be helpful in debuging.

# File lib/openshift/billing_service.rb, line 39
def get_uid(urec)
  "User Id: #{urec['user_id']}, Gear: #{urec['gear_id']}, UsageType: #{urec['usage_type']}"
end
get_usage_time(urec) click to toggle source
# File lib/openshift/billing_service.rb, line 61
def get_usage_time(urec)
  total_time = 0
  if urec['end_time'] > urec['time']
    total_time = (urec['end_time'] - urec['time']) / 3600 #hours
  end
  total_time
end
post_sync_usage(session) click to toggle source
# File lib/openshift/billing_service.rb, line 75
def post_sync_usage(session)
end
pre_sync_usage(session) click to toggle source
# File lib/openshift/billing_service.rb, line 69
def pre_sync_usage(session)
end
set_logger(log_file=nil) click to toggle source
# File lib/openshift/billing_service.rb, line 22
def set_logger(log_file=nil)
  if log_file
    @log = Logger.new(log_file)
    output = log_file
  else
    @log = Logger.new(STDOUT)
    output = "terminal"
  end
  @log.level = Logger::DEBUG
  @log.formatter = proc do |severity, datetime, progname, msg|
      "#{datetime} #{severity}:: #{msg}\n"
  end
  puts "Errors/Warnings will be logged to #{output}"
end
sync_usage(session, user_usage_records, sync_time) click to toggle source
# File lib/openshift/billing_service.rb, line 72
def sync_usage(session, user_usage_records, sync_time)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.