Class: Tapjoy::AutoscalingBootstrap::Autoscaling::Policy

Inherits:
Object
  • Object
show all
Defined in:
lib/tapjoy/autoscaling_bootstrap/autoscaling/policy.rb

Overview

Class for Autoscaling policies

Instance Method Summary collapse

Constructor Details

#initializePolicy

Initialize the class



8
9
10
11
# File 'lib/tapjoy/autoscaling_bootstrap/autoscaling/policy.rb', line 8

def initialize
  @scaler_name = Tapjoy::AutoscalingBootstrap.scaler_name
  @group       = Tapjoy::AutoscalingBootstrap.group
end

Instance Method Details

#create(policy, scale) ⇒ Object

Create autoscaling policy



14
15
16
17
18
# File 'lib/tapjoy/autoscaling_bootstrap/autoscaling/policy.rb', line 14

def create(policy, scale)
  fail Tapjoy::AutoscalingBootstrap::Errors::InvalidAutoscalingGroup unless Tapjoy::AutoscalingBootstrap.group.exists
  Tapjoy::AutoscalingBootstrap::AWS::Autoscaling.put_scaling_policy(
    policy_name: policy, **scale)
end

#delete(policy) ⇒ Object

Delete scaling policies



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/tapjoy/autoscaling_bootstrap/autoscaling/policy.rb', line 21

def delete(policy)
  return unless @group.exists

  if Tapjoy::AutoscalingBootstrap::AWS::Autoscaling.describe_policies(
    policy: policy)[0].length > 0

    puts "Deleting policy: #{policy}"
    Tapjoy::AutoscalingBootstrap::AWS::Autoscaling.delete_policy(
    policy: policy)
  else
    STDERR.puts "'#{policy}' doesn't exist. Skipping..."
  end
end