Sha256: 54edda9264e3418f056bff71834522106082d1ab556d33d78f2094f6345c9a8a

Contents?: true

Size: 1006 Bytes

Versions: 4

Compression:

Stored size: 1006 Bytes

Contents

# frozen_string_literal: true
require 'aws-sdk'

module Hako
  class Scheduler
    class ValidationError < Error
    end

    def initialize(app_id, options, volumes:, scripts:, dry_run:, force:)
      @app_id = app_id
      @volumes = volumes
      @scripts = scripts
      @dry_run = dry_run
      @force = force
      configure(options)
    end

    def configure(_options)
    end

    def deploy(_containers, _options)
      raise NotImplementedError
    end

    def status
      raise NotImplementedError
    end

    def remove
      raise NotImplementedError
    end

    def upload_front_config(app_id, front, app_port)
      front_conf = front.generate_config(app_port)
      s3_config = front.s3
      s3 = Aws::S3::Client.new(region: s3_config.region)
      s3.put_object(
        body: front_conf,
        bucket: s3_config.bucket,
        key: s3_config.key(app_id),
      )
    end

    private

    def validation_error!(message)
      raise ValidationError.new(message)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
hako-0.12.0 lib/hako/scheduler.rb
hako-0.11.2 lib/hako/scheduler.rb
hako-0.11.1 lib/hako/scheduler.rb
hako-0.11.0 lib/hako/scheduler.rb