Class: EcsCmd::TaskDefinition

Inherits:
Object
  • Object
show all
Defined in:
lib/ecs_cmd/task_definition.rb

Instance Method Summary collapse

Constructor Details

#initialize(task_definition, region) ⇒ TaskDefinition

Returns a new instance of TaskDefinition.



7
8
9
10
# File 'lib/ecs_cmd/task_definition.rb', line 7

def initialize(task_definition, region)
  @client = Aws::ECS::Client.new(region: region)
  @task_def = @client.describe_task_definition(task_definition: task_definition)[0]
end

Instance Method Details

#container_definitionsObject



13
14
15
# File 'lib/ecs_cmd/task_definition.rb', line 13

def container_definitions
  @task_def['container_definitions']
end

#execution_role_arnObject



47
48
49
# File 'lib/ecs_cmd/task_definition.rb', line 47

def execution_role_arn
  @task_def['execution_role_arn'] || ''
end

#familyObject



23
24
25
# File 'lib/ecs_cmd/task_definition.rb', line 23

def family
  @task_def['family']
end

#hashObject



35
36
37
# File 'lib/ecs_cmd/task_definition.rb', line 35

def hash
  @task_def.to_hash
end

#imagesObject



17
18
19
20
21
# File 'lib/ecs_cmd/task_definition.rb', line 17

def images
  self.container_definitions.each do |e|
    puts e['image']
  end
end

#jsonObject



39
40
41
# File 'lib/ecs_cmd/task_definition.rb', line 39

def json
  hash.to_json
end


69
70
71
# File 'lib/ecs_cmd/task_definition.rb', line 69

def print_json
  puts JSON.pretty_generate(JSON[json])
end

#register_task_definition(family, container_definitions, volumes, task_role_arn) ⇒ Object



64
65
66
67
# File 'lib/ecs_cmd/task_definition.rb', line 64

def register_task_definition(family, container_definitions, volumes, task_role_arn)
  @client.register_task_definition(family: family, container_definitions: container_definitions, volumes: volumes,
                                   task_role_arn: task_role_arn, execution_role_arn: execution_role_arn)
end

#revisionObject



27
28
29
# File 'lib/ecs_cmd/task_definition.rb', line 27

def revision
  @task_def['revision']
end

#task_role_arnObject



43
44
45
# File 'lib/ecs_cmd/task_definition.rb', line 43

def task_role_arn
  @task_def['task_role_arn']
end

#update_image(image) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/ecs_cmd/task_definition.rb', line 51

def update_image(image)
  @new_task_def = @task_def.to_hash
  @new_task_def[:container_definitions].each do |e, i=image|
    if Utils.parse_image_name(e[:image]) == Utils.parse_image_name(i)
      e[:image] = image
    end
  end
  @new_task_def
  resp = register_task_definition(@new_task_def[:family], @new_task_def[:container_definitions],
                                  @new_task_def[:volumes], @new_task_def[:task_role_arn])
  resp.task_definition.task_definition_arn
end

#volumesObject



31
32
33
# File 'lib/ecs_cmd/task_definition.rb', line 31

def volumes
  @task_def['volumes']
end