Class: SpreeCmCommissioner::WaitingRoomLatestSystemMetadataPuller

Inherits:
BaseInteractor
  • Object
show all
Defined in:
app/interactors/spree_cm_commissioner/waiting_room_latest_system_metadata_puller.rb

Instance Method Summary collapse

Instance Method Details

#callObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/interactors/spree_cm_commissioner/waiting_room_latest_system_metadata_puller.rb', line 5

def call
  region = ENV.fetch('AWS_REGION', nil)
  access_key_id = ENV.fetch('AWS_ACCESS_KEY_ID', nil)
  secret_access_key = ENV.fetch('AWS_SECRET_ACCESS_KEY', nil)
  cluster_name = ENV.fetch('AWS_CLUSTER_NAME', nil)
  cluster_service_name = ENV.fetch('AWS_CLUSTER_SERVICE_NAME', nil)

  # On dev/staging, these env vars might not be set, so skip the job instead of raising.
  return if [
    region,
    access_key_id,
    secret_access_key,
    cluster_name,
    cluster_service_name
  ].any?(&:nil?)

  ecs_client = Aws::ECS::Client.new(
    region: region,
    access_key_id: access_key_id,
    secret_access_key: secret_access_key
  )

  response = ecs_client.describe_services(
    cluster: cluster_name,
    services: [cluster_service_name]
  )

  running_count = response.services.first.running_count

  SpreeCmCommissioner::WaitingRoomSystemMetadataSetter.new.set(server_running_count: running_count)
end