Class: CircleciTools::UsageReportService
- Inherits:
-
Object
- Object
- CircleciTools::UsageReportService
- Includes:
- Retryable
- Defined in:
- lib/circleci-tools/usage_report_service.rb
Constant Summary
Constants included from Retryable
Retryable::BACKOFF_FACTOR, Retryable::MAX_BACKOFF_TIME, Retryable::MAX_RETRIES
Instance Method Summary collapse
- #call(start_time: Time.now.utc - 3600, end_time: Time.now.utc, usage_export_job_id: nil) ⇒ Object
-
#initialize(api_service, org_id, shared_org_ids = [], interval_seconds = 600, logger: Logger.new(STDOUT), log_level: Logger::INFO) ⇒ UsageReportService
constructor
A new instance of UsageReportService.
- #stop ⇒ Object
Methods included from Retryable
Constructor Details
#initialize(api_service, org_id, shared_org_ids = [], interval_seconds = 600, logger: Logger.new(STDOUT), log_level: Logger::INFO) ⇒ UsageReportService
Returns a new instance of UsageReportService.
15 16 17 18 19 20 21 22 23 |
# File 'lib/circleci-tools/usage_report_service.rb', line 15 def initialize(api_service, org_id, shared_org_ids = [], interval_seconds = 600, logger: Logger.new(STDOUT), log_level: Logger::INFO) @api_service = api_service @org_id = org_id @shared_org_ids = shared_org_ids @interval_seconds = interval_seconds @running = false @logger = logger @logger.level = log_level end |
Instance Method Details
#call(start_time: Time.now.utc - 3600, end_time: Time.now.utc, usage_export_job_id: nil) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/circleci-tools/usage_report_service.rb', line 25 def call(start_time: Time.now.utc - 3600, end_time: Time.now.utc, usage_export_job_id: nil) @logger.info("Starting usage report for org #{@org_id}...") @running = true end_time = Time.now.utc if end_time > Time.now.utc if usage_export_job_id @logger.info("Using existing usage export job ID: #{usage_export_job_id}") usage_data = poll_usage_export_job(usage_export_job_id) success = usage_data && usage_data['download_urls'] @logger.debug("Usage data: #{usage_data}") files = success ? download_and_save_files(usage_data['download_urls'], start_time, end_time) : [] else success, files = fetch_and_store_usage_report(start_time:, end_time:) end stop if success files end |
#stop ⇒ Object
45 46 47 |
# File 'lib/circleci-tools/usage_report_service.rb', line 45 def stop @running = false end |