|
|
|
@ -374,15 +374,21 @@ class ShixunsController < ApplicationController
|
|
|
|
|
|
|
|
|
|
def update
|
|
|
|
|
# 镜像方面
|
|
|
|
|
mirror_ids = MirrorRepository.where(id: params[:main_type]).or( MirrorRepository.where(id: params[:small_type])).pluck(:id)
|
|
|
|
|
mirror_ids = MirrorRepository.where(id: params[:main_type])
|
|
|
|
|
.or( MirrorRepository.where(id: params[:small_type])).pluck(:id).uniq
|
|
|
|
|
old_mirror_ids = @shixun.shixun_mirror_repositories
|
|
|
|
|
.where(mirror_repository_id: params[:main_type])
|
|
|
|
|
.or(@shixun.shixun_mirror_repositories.where(mirror_repository_id: params[:small_type])).pluck(:mirror_repository_id)
|
|
|
|
|
.or(@shixun.shixun_mirror_repositories.where(mirror_repository_id: params[:small_type]))
|
|
|
|
|
.pluck(:mirror_repository_id).uniq
|
|
|
|
|
new_mirror_id = (mirror_ids - old_mirror_ids).map{|id| {mirror_repository_id: id}} # 转换成数组hash方便操作
|
|
|
|
|
logger.info("##########new_mirror_id: #{new_mirror_id}")
|
|
|
|
|
logger.info("##########new_mirror_id: #{old_mirror_ids}")
|
|
|
|
|
logger.info("##########mirror_ids: #{mirror_ids}")
|
|
|
|
|
# 服务配置方面
|
|
|
|
|
service_params = service_config_params[:shixun_service_configs]
|
|
|
|
|
.select{|config| !old_mirror_ids.include?(config[:mirror_repository_id]) &&
|
|
|
|
|
MirrorRepository.find(config[:mirror_repository_id]).name.present?}
|
|
|
|
|
logger.info("#########service_params: #{service_params}")
|
|
|
|
|
begin
|
|
|
|
|
ActiveRecord::Base.transaction do
|
|
|
|
|
@shixun.update_attributes(shixun_params)
|
|
|
|
|