From 910fbcf6ea784ed5db641f298ffb4e08e21cfe21 Mon Sep 17 00:00:00 2001 From: Ryo Takaishi Date: Sat, 9 Sep 2023 13:09:10 +0900 Subject: [PATCH 1/5] =?UTF-8?q?MediaPackage=E3=83=AA=E3=82=BD=E3=83=BC?= =?UTF-8?q?=E3=82=B9=E3=82=92Streaming=E3=81=AE=E7=AE=A1=E7=90=86=E4=B8=8B?= =?UTF-8?q?=E3=81=AB=E7=A7=BB=E8=A1=8C=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/media_package_helper.rb | 11 ++++ app/jobs/create_media_package_job.rb | 4 +- .../create_streaming_aws_resources_job.rb | 17 +++++ app/jobs/delete_media_package_job.rb | 6 +- .../delete_streaming_aws_resources_job.rb | 23 +++++++ app/models/media_package_channel.rb | 57 +++++++--------- app/models/media_package_origin_endpoint.rb | 38 +++++------ app/models/media_package_parameter.rb | 65 +++++++++++++++++++ app/models/streaming.rb | 3 + app/models/track.rb | 1 - app/views/admin/streamings/index.html.erb | 3 + ...ming_id_columns_to_media_package_tables.rb | 31 +++++++++ db/schema.rb | 29 ++++++--- 13 files changed, 218 insertions(+), 70 deletions(-) create mode 100644 app/models/media_package_parameter.rb create mode 100644 db/migrate/20230909035236_add_streaming_id_columns_to_media_package_tables.rb diff --git a/app/helpers/media_package_helper.rb b/app/helpers/media_package_helper.rb index d8cc0d32b..b018d425a 100644 --- a/app/helpers/media_package_helper.rb +++ b/app/helpers/media_package_helper.rb @@ -22,4 +22,15 @@ def get_media_package_channels_from_aws(channel_ids = []) channels.select { |channel| channel_ids.include?(channel.id) } end + + def resource_name + conference = streaming.conference + track = streaming.track + + if review_app? + "review_app_#{review_app_number}_#{conference.abbr}_track#{track.name}" + else + "#{env_name}_#{conference.abbr}_track#{track.name}" + end + end end diff --git a/app/jobs/create_media_package_job.rb b/app/jobs/create_media_package_job.rb index 103ed5d38..923b36278 100644 --- a/app/jobs/create_media_package_job.rb +++ b/app/jobs/create_media_package_job.rb @@ -10,11 +10,11 @@ def perform(*args) channel = MediaPackageChannel.new(conference:, track:) logger.error("Failed to create MediaPackageChannel: #{channel.errors}") unless channel.save - channel.create_media_package_resources + channel.create_aws_resource endpoint = MediaPackageOriginEndpoint.new(conference:, media_package_channel: channel) logger.error("Failed to create MediaPackageChannel: #{endpoint.errors}") unless endpoint.save - endpoint.create_media_package_resources + endpoint.create_aws_resource rescue => e logger.error(e.message) end diff --git a/app/jobs/create_streaming_aws_resources_job.rb b/app/jobs/create_streaming_aws_resources_job.rb index 9fc2e0301..7dce296c6 100644 --- a/app/jobs/create_streaming_aws_resources_job.rb +++ b/app/jobs/create_streaming_aws_resources_job.rb @@ -18,6 +18,7 @@ def perform(*args) @track = @streaming.track create_media_package_v2_resources + create_media_package_resources @streaming.update!(status: 'created') rescue => e @@ -42,4 +43,20 @@ def create_media_package_v2_resources logger.info("origin endpoint: #{origin_endpoint}") origin_endpoint.create_aws_resource end + + def create_media_package_resources + logger.info('Perform CreateMediaPackageJob') + + channel = MediaPackageChannel.find_or_create_by(streaming_id: @streaming.id) + logger.info("channel: #{channel}") + channel.create_aws_resource + + parameter = MediaPackageParameter.find_or_create_by(streaming_id: @streaming.id, media_package_channel_id: channel.id) + logger.info("parameter: #{parameter}") + parameter.create_aws_resources + + endpoint = MediaPackageOriginEndpoint.find_or_create_by(streaming_id: @streaming.id, media_package_channel_id: channel.id) + logger.info("endpoint: #{endpoint}") + endpoint.create_aws_resource + end end diff --git a/app/jobs/delete_media_package_job.rb b/app/jobs/delete_media_package_job.rb index b1682bd9e..9dbd05721 100644 --- a/app/jobs/delete_media_package_job.rb +++ b/app/jobs/delete_media_package_job.rb @@ -7,8 +7,12 @@ class DeleteMediaPackageJob < ApplicationJob def perform(*args) logger.info('Perform DeleteMediaPackageJob') channel = args[0] - channel.media_package_origin_endpoints.each(&:destroy) + channel.media_package_origin_endpoints.each do |oe| + oe.delete_aws_resource + oe.destroy + end channel.media_package_harvest_jobs.each(&:destroy) + channel.delete_aws_resource channel.destroy rescue => e logger.error(e.message) diff --git a/app/jobs/delete_streaming_aws_resources_job.rb b/app/jobs/delete_streaming_aws_resources_job.rb index 19c895b02..4fa4f3db3 100644 --- a/app/jobs/delete_streaming_aws_resources_job.rb +++ b/app/jobs/delete_streaming_aws_resources_job.rb @@ -11,6 +11,7 @@ def perform(*args) @streaming = args[0] delete_media_package_v2_resources + delete_media_package_resources @streaming.update!(status: 'deleted') rescue => e @@ -38,4 +39,26 @@ def delete_media_package_v2_resources logger.info('Deleted MediaPackageV2 resources...') end + + def delete_media_package_resources + logger.info('Deleting MediaPackage resources...') + + if @streaming.media_package_origin_endpoint + @streaming.media_package_origin_endpoint.delete_aws_resource + @streaming.media_package_origin_endpoint.destroy! + end + + if @streaming.media_package_parameter + @streaming.media_package_parameter.delete_aws_resource + @streaming.media_package_parameter.destroy! + end + + if @streaming.media_package_channel + @streaming.media_package_channel.media_package_harvest_jobs&.each(&:destroy) + @streaming.media_package_channel.delete_aws_resource + @streaming.media_package_channel.destroy! + end + + logger.info('Deleted MediaPackage resources...') + end end diff --git a/app/models/media_package_channel.rb b/app/models/media_package_channel.rb index 45b376bef..318fff862 100644 --- a/app/models/media_package_channel.rb +++ b/app/models/media_package_channel.rb @@ -2,40 +2,30 @@ # # Table name: media_package_channels # -# id :bigint not null, primary key -# channel_id :string(255) default("") -# conference_id :bigint not null -# track_id :bigint not null +# id :bigint not null, primary key +# channel_id :string(255) default("") +# streaming_id :string(255) # # Indexes # -# index_media_package_channels_on_channel_id (channel_id) -# index_media_package_channels_on_conference_id (conference_id) -# index_media_package_channels_on_track_id (track_id) +# index_media_package_channels_on_channel_id (channel_id) +# index_media_package_channels_on_streaming_id (streaming_id) # # Foreign Keys # -# fk_rails_... (conference_id => conferences.id) -# fk_rails_... (track_id => tracks.id) +# fk_rails_... (streaming_id => streamings.id) # class MediaPackageChannel < ApplicationRecord include MediaPackageHelper include EnvHelper - belongs_to :conference - belongs_to :track + belongs_to :streaming has_many :media_package_origin_endpoints has_many :media_package_harvest_jobs - before_destroy do - delete_media_package_resources - rescue => e - logger.error(e.message) - end - def channel - @channel ||= media_package_client.describe_channel(id: channel_id) + @channel = media_package_client.describe_channel(id: channel_id) rescue => e logger.error(e.message.to_s) end @@ -56,18 +46,25 @@ def ingest_endpoint_password ingest_endpoints[0]['password'] end - def create_media_package_resources - resp = media_package_client.create_channel(create_channel_params) - update!(channel_id: resp.id) - rescue => e - logger.error(e.message) - delete_media_package_resources + def create_aws_resource + unless exists_aws_resource? + resp = media_package_client.create_channel(create_channel_params) + update!(channel_id: resp.id) + end end - def delete_media_package_resources - media_package_client.delete_channel(id: channel_id) + def exists_aws_resource? + media_package_client.describe_channel(id: channel_id) + true + rescue Aws::MediaPackage::Errors::NotFoundException + false rescue => e logger.error(e.message.to_s) + false + end + + def delete_aws_resource + media_package_client.delete_channel(id: channel_id) end private @@ -85,12 +82,4 @@ def tags tags['ReviewAppNumber'] = review_app_number.to_s if ENV['DREAMKAST_NAMESPACE'] tags end - - def resource_name - if review_app? - "review_app_#{review_app_number}_#{conference.abbr}_track#{track.name}" - else - "#{env_name}_#{conference.abbr}_track#{track.name}" - end - end end diff --git a/app/models/media_package_origin_endpoint.rb b/app/models/media_package_origin_endpoint.rb index d0a5eb26f..74b0fc021 100644 --- a/app/models/media_package_origin_endpoint.rb +++ b/app/models/media_package_origin_endpoint.rb @@ -3,50 +3,52 @@ # Table name: media_package_origin_endpoints # # id :bigint not null, primary key -# conference_id :bigint not null # endpoint_id :string(255) # media_package_channel_id :bigint not null +# streaming_id :string(255) # # Indexes # -# index_media_package_origin_endpoints_on_conference_id (conference_id) # index_media_package_origin_endpoints_on_media_package_channel_id (media_package_channel_id) +# index_media_package_origin_endpoints_on_streaming_id (streaming_id) # # Foreign Keys # -# fk_rails_... (conference_id => conferences.id) # fk_rails_... (media_package_channel_id => media_package_channels.id) +# fk_rails_... (streaming_id => streamings.id) # class MediaPackageOriginEndpoint < ApplicationRecord include MediaPackageHelper include EnvHelper - belongs_to :conference belongs_to :media_package_channel + belongs_to :streaming - before_destroy do - delete_media_package_resources - end def origin_endpoint - @origin_endpoint ||= media_package_client.describe_origin_endpoint(id: endpoint_id) + @origin_endpoint = media_package_client.describe_origin_endpoint(id: endpoint_id) rescue => e logger.error(e.message.to_s) end - def create_media_package_resources + def create_aws_resource resp = media_package_client.create_origin_endpoint(create_params) update!(endpoint_id: resp.id) - rescue => e - logger.error(e.message) - delete_media_package_resources end - def delete_media_package_resources - media_package_client.delete_origin_endpoint(id: endpoint_id) + def exists_aws_resource? + media_package_client.describe_origin_endpoint(id: endpoint_id) + true + rescue Aws::MediaPackage::Errors::NotFoundException + false rescue => e logger.error(e.message.to_s) + false + end + + def delete_aws_resource + media_package_client.delete_origin_endpoint(id: endpoint_id) end private @@ -84,12 +86,4 @@ def tags tags['ReviewAppNumber'] = review_app_number.to_s if ENV['DREAMKAST_NAMESPACE'] tags end - - def resource_name - if review_app? - "review_app_#{review_app_number}_#{conference.abbr}_track#{media_package_channel.track.name}" - else - "#{env_name}_#{conference.abbr}_track#{media_package_channel.track.name}" - end - end end diff --git a/app/models/media_package_parameter.rb b/app/models/media_package_parameter.rb new file mode 100644 index 000000000..ec768538d --- /dev/null +++ b/app/models/media_package_parameter.rb @@ -0,0 +1,65 @@ +# == Schema Information +# +# Table name: media_package_parameters +# +# id :string(255) not null, primary key +# name :string(255) +# created_at :datetime not null +# updated_at :datetime not null +# media_package_channel_id :bigint not null +# streaming_id :string(255) not null +# +# Indexes +# +# index_media_package_parameters_on_media_package_channel_id (media_package_channel_id) +# index_media_package_parameters_on_streaming_id (streaming_id) +# +# Foreign Keys +# +# fk_rails_... (media_package_channel_id => media_package_channels.id) +# fk_rails_... (streaming_id => streamings.id) +# +require 'aws-sdk-medialive' + +class MediaPackageParameter < ApplicationRecord + include MediaLiveHelper + include SsmHelper + include EnvHelper + + before_create :set_uuid + + belongs_to :streaming + belongs_to :media_package_channel + + def create_aws_resources + unless exists_aws_resource? + create_parameter("/medialive/#{resource_name}", media_package_channel.ingest_endpoint_password) + update!(name: "/medialive/#{resource_name}") + end + rescue => e + logger.error(e.message) + end + + def exists_aws_resource? + ssm_client.describe_parameters(filters: [{ key: 'Name', values: ["/medialive/#{resource_name}"] }]).parameters.any? + rescue => e + logger.error(e.message) + false + end + + def delete_aws_resource + delete_parameter("/medialive/#{resource_name}") + rescue => e + logger.error(e.message.to_s) + end + + private + + def resource_name + if review_app? + "review_app_#{review_app_number}_#{conference.abbr}_track#{track.name}" + else + "#{env_name}_#{conference.abbr}_track#{track.name}" + end + end +end diff --git a/app/models/streaming.rb b/app/models/streaming.rb index 54e8836f5..fad4e4cf2 100644 --- a/app/models/streaming.rb +++ b/app/models/streaming.rb @@ -29,6 +29,9 @@ class Streaming < ApplicationRecord has_one :media_package_v2_channel_group has_one :media_package_v2_channel has_one :media_package_v2_origin_endpoint + has_one :media_package_channel + has_one :media_package_origin_endpoint + has_one :media_package_parameter STATUS_CREATING = 'creating'.freeze STATUS_CRTEATED = 'created'.freeze diff --git a/app/models/track.rb b/app/models/track.rb index 74fdd27ea..f80a759d6 100644 --- a/app/models/track.rb +++ b/app/models/track.rb @@ -21,7 +21,6 @@ class Track < ApplicationRecord has_many :talks has_one :live_stream_ivs has_one :live_stream_media_live - has_one :media_package_channel has_one :streaming belongs_to :room, optional: true diff --git a/app/views/admin/streamings/index.html.erb b/app/views/admin/streamings/index.html.erb index abb16779a..57045944f 100644 --- a/app/views/admin/streamings/index.html.erb +++ b/app/views/admin/streamings/index.html.erb @@ -101,6 +101,9 @@ MediaPackage V2 ChannelGroup<%= track.streaming&.media_package_v2_channel_group&.name %> + + MediaPackage Channel<%= track.streaming&.media_package_channel&.channel_id %> + diff --git a/db/migrate/20230909035236_add_streaming_id_columns_to_media_package_tables.rb b/db/migrate/20230909035236_add_streaming_id_columns_to_media_package_tables.rb new file mode 100644 index 000000000..a6af63f78 --- /dev/null +++ b/db/migrate/20230909035236_add_streaming_id_columns_to_media_package_tables.rb @@ -0,0 +1,31 @@ +class AddStreamingIdColumnsToMediaPackageTables < ActiveRecord::Migration[7.0] + def up + create_table :media_package_parameters, id: :string do |t| + t.belongs_to :streaming, null: false, foreign_key: true, type: :string + t.belongs_to :media_package_channel, null: false, foreign_key: true, type: :bigint + + t.string :name, null: true + t.timestamps + end unless ActiveRecord::Base.connection.table_exists?(:media_package_parameters) + + add_belongs_to :media_package_channels, :streaming, null: true, foreign_key: true, type: :string + add_belongs_to :media_package_origin_endpoints, :streaming, null: true, foreign_key: true, type: :string + + remove_belongs_to :media_package_channels, :conference + remove_belongs_to :media_package_channels, :track + + remove_belongs_to :media_package_origin_endpoints, :conference + end + + def down + add_belongs_to :media_package_origin_endpoints, :conference, null: false, foreign_key: true, type: :bigint + + add_belongs_to :media_package_channels, :track, null: false, foreign_key: true, type: :bigint + add_belongs_to :media_package_channels, :conference, null: false, foreign_key: true, type: :bigint + + remove_belongs_to :media_package_channels, :streaming + remove_belongs_to :media_package_origin_endpoints, :streaming + + drop_table :media_package_parameters + end +end diff --git a/db/schema.rb b/db/schema.rb index 0711b1d93..347bbb35b 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 2023_09_06_132249) do +ActiveRecord::Schema[7.0].define(version: 2023_09_09_035236) do create_table "access_logs", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| t.string "name" t.string "sub" @@ -163,12 +163,10 @@ end create_table "media_package_channels", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| - t.bigint "conference_id", null: false - t.bigint "track_id", null: false t.string "channel_id", default: "" + t.string "streaming_id" t.index ["channel_id"], name: "index_media_package_channels_on_channel_id" - t.index ["conference_id"], name: "index_media_package_channels_on_conference_id" - t.index ["track_id"], name: "index_media_package_channels_on_track_id" + t.index ["streaming_id"], name: "index_media_package_channels_on_streaming_id" end create_table "media_package_harvest_jobs", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| @@ -185,11 +183,21 @@ end create_table "media_package_origin_endpoints", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| - t.bigint "conference_id", null: false t.bigint "media_package_channel_id", null: false t.string "endpoint_id" - t.index ["conference_id"], name: "index_media_package_origin_endpoints_on_conference_id" + t.string "streaming_id" t.index ["media_package_channel_id"], name: "index_media_package_origin_endpoints_on_media_package_channel_id" + t.index ["streaming_id"], name: "index_media_package_origin_endpoints_on_streaming_id" + end + + create_table "media_package_parameters", id: :string, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| + t.string "streaming_id", null: false + t.bigint "media_package_channel_id", null: false + t.string "name" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["media_package_channel_id"], name: "index_media_package_parameters_on_media_package_channel_id" + t.index ["streaming_id"], name: "index_media_package_parameters_on_streaming_id" end create_table "media_package_v2_channel_groups", id: :string, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| @@ -577,13 +585,14 @@ add_foreign_key "links", "conferences" add_foreign_key "live_streams", "conferences" add_foreign_key "live_streams", "tracks" - add_foreign_key "media_package_channels", "conferences" - add_foreign_key "media_package_channels", "tracks" + add_foreign_key "media_package_channels", "streamings" add_foreign_key "media_package_harvest_jobs", "conferences" add_foreign_key "media_package_harvest_jobs", "media_package_channels" add_foreign_key "media_package_harvest_jobs", "talks" - add_foreign_key "media_package_origin_endpoints", "conferences" add_foreign_key "media_package_origin_endpoints", "media_package_channels" + add_foreign_key "media_package_origin_endpoints", "streamings" + add_foreign_key "media_package_parameters", "media_package_channels" + add_foreign_key "media_package_parameters", "streamings" add_foreign_key "media_package_v2_channel_groups", "streamings" add_foreign_key "media_package_v2_channels", "streamings" add_foreign_key "media_package_v2_origin_endpoints", "streamings" From 83422efeb11b7497d370814ec48076be107f268a Mon Sep 17 00:00:00 2001 From: Ryo Takaishi Date: Sun, 10 Sep 2023 18:29:53 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=E5=89=8A=E9=99=A4=E5=89=8D=E3=81=AB?= =?UTF-8?q?=E3=83=AA=E3=82=BD=E3=83=BC=E3=82=B9=E3=81=8C=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E3=81=99=E3=82=8B=E3=81=8B=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF?= =?UTF-8?q?=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/media_package_channel.rb | 2 +- app/models/media_package_origin_endpoint.rb | 2 +- app/models/media_package_parameter.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/models/media_package_channel.rb b/app/models/media_package_channel.rb index 318fff862..91e6b2817 100644 --- a/app/models/media_package_channel.rb +++ b/app/models/media_package_channel.rb @@ -64,7 +64,7 @@ def exists_aws_resource? end def delete_aws_resource - media_package_client.delete_channel(id: channel_id) + media_package_client.delete_channel(id: channel_id) if exists_aws_resource? end private diff --git a/app/models/media_package_origin_endpoint.rb b/app/models/media_package_origin_endpoint.rb index 74b0fc021..9c00ff032 100644 --- a/app/models/media_package_origin_endpoint.rb +++ b/app/models/media_package_origin_endpoint.rb @@ -48,7 +48,7 @@ def exists_aws_resource? end def delete_aws_resource - media_package_client.delete_origin_endpoint(id: endpoint_id) + media_package_client.delete_origin_endpoint(id: endpoint_id) if exists_aws_resource? end private diff --git a/app/models/media_package_parameter.rb b/app/models/media_package_parameter.rb index ec768538d..f76455249 100644 --- a/app/models/media_package_parameter.rb +++ b/app/models/media_package_parameter.rb @@ -48,7 +48,7 @@ def exists_aws_resource? end def delete_aws_resource - delete_parameter("/medialive/#{resource_name}") + delete_parameter("/medialive/#{resource_name}") if exists_aws_resource? rescue => e logger.error(e.message.to_s) end From 4a6480461d2135928a8eca9621610e933c22b5e5 Mon Sep 17 00:00:00 2001 From: Ryo Takaishi Date: Sun, 10 Sep 2023 18:32:06 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=E4=B8=8D=E8=A6=81=E3=81=AA=E4=BE=8B?= =?UTF-8?q?=E5=A4=96=E3=81=AE=E6=8F=A1=E3=82=8A=E3=81=A4=E3=81=B6=E3=81=97?= =?UTF-8?q?=E3=82=92=E6=B6=88=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/media_package_channel.rb | 2 -- app/models/media_package_origin_endpoint.rb | 2 -- app/models/media_package_parameter.rb | 4 ---- 3 files changed, 8 deletions(-) diff --git a/app/models/media_package_channel.rb b/app/models/media_package_channel.rb index 91e6b2817..f071febb2 100644 --- a/app/models/media_package_channel.rb +++ b/app/models/media_package_channel.rb @@ -26,8 +26,6 @@ class MediaPackageChannel < ApplicationRecord def channel @channel = media_package_client.describe_channel(id: channel_id) - rescue => e - logger.error(e.message.to_s) end def ingest_endpoints diff --git a/app/models/media_package_origin_endpoint.rb b/app/models/media_package_origin_endpoint.rb index 9c00ff032..c91ee284b 100644 --- a/app/models/media_package_origin_endpoint.rb +++ b/app/models/media_package_origin_endpoint.rb @@ -28,8 +28,6 @@ class MediaPackageOriginEndpoint < ApplicationRecord def origin_endpoint @origin_endpoint = media_package_client.describe_origin_endpoint(id: endpoint_id) - rescue => e - logger.error(e.message.to_s) end def create_aws_resource diff --git a/app/models/media_package_parameter.rb b/app/models/media_package_parameter.rb index f76455249..d33766532 100644 --- a/app/models/media_package_parameter.rb +++ b/app/models/media_package_parameter.rb @@ -36,8 +36,6 @@ def create_aws_resources create_parameter("/medialive/#{resource_name}", media_package_channel.ingest_endpoint_password) update!(name: "/medialive/#{resource_name}") end - rescue => e - logger.error(e.message) end def exists_aws_resource? @@ -49,8 +47,6 @@ def exists_aws_resource? def delete_aws_resource delete_parameter("/medialive/#{resource_name}") if exists_aws_resource? - rescue => e - logger.error(e.message.to_s) end private From ebb61f8591b6cdf39d1f5a1a8ef44b7f177b5aa9 Mon Sep 17 00:00:00 2001 From: Ryo Takaishi Date: Sun, 10 Sep 2023 18:58:07 +0900 Subject: [PATCH 4/5] =?UTF-8?q?AWS=E3=83=AA=E3=82=BD=E3=83=BC=E3=82=B9?= =?UTF-8?q?=E3=81=8C=E3=81=82=E3=82=8B=E5=A0=B4=E5=90=88=E3=81=AE=E3=81=BF?= =?UTF-8?q?destroy!=E6=99=82=E3=81=ABAWS=E3=83=AA=E3=82=BD=E3=83=BC?= =?UTF-8?q?=E3=82=B9=E3=82=82=E6=B6=88=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../delete_streaming_aws_resources_job.rb | 19 ++++--------------- app/models/media_package_channel.rb | 4 ++++ app/models/media_package_origin_endpoint.rb | 4 ++++ app/models/media_package_parameter.rb | 4 ++++ 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/app/jobs/delete_streaming_aws_resources_job.rb b/app/jobs/delete_streaming_aws_resources_job.rb index 4fa4f3db3..21a596705 100644 --- a/app/jobs/delete_streaming_aws_resources_job.rb +++ b/app/jobs/delete_streaming_aws_resources_job.rb @@ -43,21 +43,10 @@ def delete_media_package_v2_resources def delete_media_package_resources logger.info('Deleting MediaPackage resources...') - if @streaming.media_package_origin_endpoint - @streaming.media_package_origin_endpoint.delete_aws_resource - @streaming.media_package_origin_endpoint.destroy! - end - - if @streaming.media_package_parameter - @streaming.media_package_parameter.delete_aws_resource - @streaming.media_package_parameter.destroy! - end - - if @streaming.media_package_channel - @streaming.media_package_channel.media_package_harvest_jobs&.each(&:destroy) - @streaming.media_package_channel.delete_aws_resource - @streaming.media_package_channel.destroy! - end + @streaming.media_package_origin_endpoint&.destroy! + @streaming.media_package_parameter&.destroy! + @streaming.media_package_channel&.media_package_harvest_jobs&.each(&:destroy) + @streaming.media_package_channel&.destroy! logger.info('Deleted MediaPackage resources...') end diff --git a/app/models/media_package_channel.rb b/app/models/media_package_channel.rb index f071febb2..56d06f2a5 100644 --- a/app/models/media_package_channel.rb +++ b/app/models/media_package_channel.rb @@ -20,6 +20,10 @@ class MediaPackageChannel < ApplicationRecord include MediaPackageHelper include EnvHelper + before_destroy do + delete_aws_resource + end + belongs_to :streaming has_many :media_package_origin_endpoints has_many :media_package_harvest_jobs diff --git a/app/models/media_package_origin_endpoint.rb b/app/models/media_package_origin_endpoint.rb index c91ee284b..cd91e3414 100644 --- a/app/models/media_package_origin_endpoint.rb +++ b/app/models/media_package_origin_endpoint.rb @@ -22,6 +22,10 @@ class MediaPackageOriginEndpoint < ApplicationRecord include MediaPackageHelper include EnvHelper + before_destroy do + delete_aws_resource + end + belongs_to :media_package_channel belongs_to :streaming diff --git a/app/models/media_package_parameter.rb b/app/models/media_package_parameter.rb index d33766532..e41d83e7f 100644 --- a/app/models/media_package_parameter.rb +++ b/app/models/media_package_parameter.rb @@ -26,6 +26,10 @@ class MediaPackageParameter < ApplicationRecord include SsmHelper include EnvHelper + before_destroy do + delete_aws_resource + end + before_create :set_uuid belongs_to :streaming From ac5fd73254520c3d94da22d0d295674a7f2e675c Mon Sep 17 00:00:00 2001 From: Ryo Takaishi Date: Sun, 10 Sep 2023 19:08:44 +0900 Subject: [PATCH 5/5] =?UTF-8?q?1=E8=A1=8C=E3=81=A7=E6=9B=B8=E3=81=91?= =?UTF-8?q?=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/media_package_channel.rb | 4 +--- app/models/media_package_origin_endpoint.rb | 4 +--- app/models/media_package_parameter.rb | 4 +--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/app/models/media_package_channel.rb b/app/models/media_package_channel.rb index 56d06f2a5..9a8587f20 100644 --- a/app/models/media_package_channel.rb +++ b/app/models/media_package_channel.rb @@ -20,9 +20,7 @@ class MediaPackageChannel < ApplicationRecord include MediaPackageHelper include EnvHelper - before_destroy do - delete_aws_resource - end + before_destroy :delete_aws_resource belongs_to :streaming has_many :media_package_origin_endpoints diff --git a/app/models/media_package_origin_endpoint.rb b/app/models/media_package_origin_endpoint.rb index cd91e3414..dd6390295 100644 --- a/app/models/media_package_origin_endpoint.rb +++ b/app/models/media_package_origin_endpoint.rb @@ -22,9 +22,7 @@ class MediaPackageOriginEndpoint < ApplicationRecord include MediaPackageHelper include EnvHelper - before_destroy do - delete_aws_resource - end + before_destroy :delete_aws_resource belongs_to :media_package_channel belongs_to :streaming diff --git a/app/models/media_package_parameter.rb b/app/models/media_package_parameter.rb index e41d83e7f..b9a15aafe 100644 --- a/app/models/media_package_parameter.rb +++ b/app/models/media_package_parameter.rb @@ -26,9 +26,7 @@ class MediaPackageParameter < ApplicationRecord include SsmHelper include EnvHelper - before_destroy do - delete_aws_resource - end + before_destroy :delete_aws_resource before_create :set_uuid