def track_usage(gear, event, usage_type=UsageRecord::USAGE_TYPES[:gear_usage])
if Rails.configuration.usage_tracking[:datastore_enabled]
now = Time.now.utc
uuid = OpenShift::Model.gen_uuid
self.usage_records = [] unless usage_records
usage_record = UsageRecord.new(event, user, now, uuid, usage_type)
case usage_type
when UsageRecord::USAGE_TYPES[:gear_usage]
usage_record.gear_uuid = gear.uuid
usage_record.gear_size = gear.node_profile
when UsageRecord::USAGE_TYPES[:addtl_fs_gb]
usage_record.gear_uuid = gear.uuid
usage_record.addtl_fs_gb = gear.group_instance.addtl_fs_gb
end
self.usage_records << usage_record
self.class.notify_observers(:track_usage, {:gear_uuid => gear.uuid, :login => gear.app.user.login, :event => event, :time => now, :uuid => uuid, :usage_type => usage_type, :gear_size => gear.node_profile, :addtl_fs_gb => gear.group_instance.addtl_fs_gb})
end
if Rails.configuration.usage_tracking[:syslog_enabled]
usage_string = "User: #{user.login} Event: #{event}"
case usage_type
when UsageRecord::USAGE_TYPES[:gear_usage]
usage_string += " Gear: #{gear.uuid} Gear Size: #{gear.node_profile}"
when UsageRecord::USAGE_TYPES[:addtl_fs_gb]
usage_string += " Gear: #{gear.uuid} Addtl File System GB: #{gear.group_instance.addtl_fs_gb}"
end
begin
Syslog.open('openshift_usage', Syslog::LOG_PID) { |s| s.notice usage_string }
rescue Exception => e
Rails.logger.error e.message
Rails.logger.error e.backtrace
end
end
end