class ZuoraConnect::StaticController
def instance_drop
def instance_drop host = request.headers.fetch("HOST", nil) if host.present? && (ZuoraConnect::AppInstance::INTERNAL_HOSTS.include?(host) || host =~ Resolv::IPv4::Regex) ZuoraConnect::AppInstance.read_master_db do instance_id = params[:id] @appinstance = ZuoraConnect::AppInstance.find(instance_id) if @appinstance.drop_instance ZuoraConnect::AppInstance.destroy(instance_id) msg = Apartment::Tenant.drop(instance_id) if msg.error_message.present? render json: { "message" => msg.error_message }, status: :bad_request else render json: { status: 200, message: 'Success', app_instance_id: instance_id }, status: 200 end else render json: { "message" => @appinstance.drop_message }, status: :bad_request end end else render json: { "message" => "Host #{host} is not internal" }, status: :bad_request end rescue StandardError => e message = 'Failed to drop instance' if performed? Rails.logger.error("#{message}: #{performed?}", e) else Rails.logger.error(message, e) render json: { status: 500, message: message }, status: 500 end end