47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# File 'lib/codily/engine.rb', line 47
def run(dry_run: false)
if dry_run
puts "(dry-run)"
puts
end
affected_services.each do |key|
version = present.service_version_get(key)
if !version[:dev]
puts "CLONE VERSION: #{version[:name]}.#{version[:active]}"
if !dry_run
version[:dev] = fastly.get_version(version[:id], version[:active]).clone.number
end
end
end
puts
creations.each do |new_element|
puts "CREATE: #{new_element.inspect}"
hash = new_element.as_hash
if new_element.parent_class == Elements::Service
service_version = present.service_version_get(new_element.service_name)
hash[:service_id] = service_version[:id]
hash[:version] = service_version[:dev]
end
unless dry_run
new_obj = fastly.create(new_element.fastly_class, hash)
if new_element.class == Elements::Service
present.service_version_set(new_obj.name, new_obj.id, new_obj.versions)
end
end
end
updates.each do |present_elem, desired_elem|
puts "UPDATE: - #{present_elem.inspect}"
puts " + #{desired_elem.inspect}"
payload = UpdatePayload.new(name: present_elem.name, id: present_elem.id, hash: desired_elem.as_hash)
if desired_elem.parent_class == Elements::Service
service_version = present.service_version_get(desired_elem.service_name)
payload.service_id = service_version[:id]
payload.version_number = service_version[:dev]
end
unless dry_run
fastly.update(desired_elem.fastly_class, payload)
end
end
removals.each do |removed_element|
puts "DELETE: #{removed_element.inspect}"
unless dry_run
removed_element.fastly_obj.delete!
end
end
act_any = !affected_services.empty?
unless act_any
puts "No difference."
end
puts
if activate
affected_services.each do |id|
version = present.service_version_get(id)
puts "ACTIVATE VERSION: #{version[:name]}.#{version[:dev]}"
if !dry_run
fastly.get_version(version[:id], version[:dev]).activate!
end
end
end
act_any
end
|