zuora_connect 3.1.2 → 3.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7e7d747f5419f91b21caca64a6e6a23cba1d35f0698c6bb2ad1a675ef30cfecb
4
- data.tar.gz: 8375c348a777bfb628cc0bda0f5feca421ac7366e6b1d9adaa46677de9705b69
3
+ metadata.gz: 3ce9871a6d530d5d0146cf591445fd21ec4f1cba986944b8b966ddc493c5f1a1
4
+ data.tar.gz: db1756a9a29035a6180ce3370021432a6b255567b8aeaea1eb36ad3f25651ff6
5
5
  SHA512:
6
- metadata.gz: b676e5e8922bd5b1b8de5955391b12be819498a6a9e6b0e0a7c04a0484d08891dd1f3cf26c4bb6d762c8cea9eb1851566035a2af8c44d8b998d033ec0d7be0af
7
- data.tar.gz: 88883530f0a643369c645e47ed7ed545f5088cf904af9d92c31ca320527bc19cae8773169067cf339abb68c251299b8e9f10a1dd0874d3d9b0d7e30bc208f428
6
+ metadata.gz: aea09cd52f629f8feb5a57a2e200040ad0371a64086c15a662f3408f77ef930211dceb2b01ebbfecc7ca437f268b262a60f52f05d43a3b0ca17e830db72a7e63
7
+ data.tar.gz: b324ac9bd0f233b04e641efafc2e62e4344218c84f99005fbe67a31a301ececb56411966b67b7a7333ee6581500ee72af4780aea6fa7c58dc15abd60c29c8169
@@ -1,12 +1,11 @@
1
1
  module ZuoraConnect
2
2
  class StaticController < ApplicationController
3
- before_action :authenticate_connect_app_request, :except => [:health, :initialize_app, :provision, :instance_user]
4
- before_action :clear_connect_app_session, :only => [:health, :initialize_app, :provision, :instance_user]
5
- after_action :persist_connect_app_session, :except => [:health, :initialize_app, :provision, :instance_user]
6
-
7
- skip_before_action :verify_authenticity_token, :only => [:initialize_app, :provision]
8
- http_basic_authenticate_with name: ENV['PROVISION_USER'], password: ENV['PROVISION_SECRET'], :only => [:provision, :instance_user]
3
+ before_action :authenticate_connect_app_request, :except => [:health, :initialize_app, :provision, :instance_user, :instance_drop]
4
+ before_action :clear_connect_app_session, :only => [:health, :initialize_app, :provision, :instance_user, :instance_drop]
5
+ after_action :persist_connect_app_session, :except => [:health, :initialize_app, :provision, :instance_user, :instance_drop]
9
6
 
7
+ skip_before_action :verify_authenticity_token, :only => [:initialize_app, :provision, :instance_drop]
8
+ http_basic_authenticate_with name: ENV['PROVISION_USER'], password: ENV['PROVISION_SECRET'], :only => [:provision, :instance_user, :instance_drop]
10
9
 
11
10
  def health
12
11
  if params[:error].present?
@@ -119,6 +118,45 @@ module ZuoraConnect
119
118
  }, status: 500
120
119
  end
121
120
 
121
+ def instance_drop
122
+ host = request.headers.fetch("HOST", nil)
123
+ if host.present? && ZuoraConnect::AppInstance::INTERNAL_HOSTS.include?(host)
124
+ ZuoraConnect::AppInstance.read_master_db do
125
+ instance_id = params[:id]
126
+ @appinstance = ZuoraConnect::AppInstance.find(instance_id)
127
+ if @appinstance.drop_instance
128
+ ZuoraConnect::AppInstance.destroy(instance_id)
129
+ msg = Apartment::Tenant.drop(instance_id)
130
+
131
+ if msg.error_message.present?
132
+ render json: { "message" => msg.error_message }, status: :bad_request
133
+ else
134
+ render json: {
135
+ status: 200,
136
+ message: 'Success',
137
+ app_instance_id: instance_id
138
+ }, status: 200
139
+ end
140
+ else
141
+ render json: { "message" => @appinstance.drop_message }, status: :bad_request
142
+ end
143
+ end
144
+ else
145
+ render json: { "message" => "Host #{host} is not internal" }, status: :bad_request
146
+ end
147
+ rescue StandardError => e
148
+ message = 'Failed to drop instance'
149
+ if performed?
150
+ Rails.logger.error("#{message}: #{performed?}", e)
151
+ else
152
+ Rails.logger.error(message, e)
153
+ render json: {
154
+ status: 500,
155
+ message: message
156
+ }, status: 500
157
+ end
158
+ end
159
+
122
160
  private
123
161
 
124
162
  def clear_connect_app_session
@@ -18,10 +18,29 @@ class Redis
18
18
  def self.current=(redis)
19
19
  @current = redis
20
20
  end
21
+
22
+ def self.subscriber
23
+ @subscriber ||= Redis.new
24
+ end
25
+
26
+ def self.subscriber=(redis)
27
+ @subscriber = redis
28
+ end
29
+
30
+ def self.publisher
31
+ @publisher ||= Redis.new
32
+ end
33
+
34
+ def self.publisher=(redis)
35
+ @publisher = redis
36
+ end
21
37
  end
22
38
 
23
39
  if defined?(Redis.current)
24
40
  Redis.current = Redis.new(:id => "#{ZuoraObservability::Env.full_process_name(process_name: 'Redis')}", :url => redis_url, :timeout => 6, :reconnect_attempts => 2)
41
+ Redis.subscriber = Redis.new(:id => "#{ZuoraObservability::Env.full_process_name(process_name: 'RedisSubscriber')}", :url => redis_url, :timeout => 6, :reconnect_attempts => 2)
42
+ Redis.publisher = Redis.new(:id => "#{ZuoraObservability::Env.full_process_name(process_name: 'RedisPublisher')}", :url => redis_url, :timeout => 6, :reconnect_attempts => 2)
43
+
25
44
  browser_urls['Redis'] = { "url" => redis_url }
26
45
  if defined?(Resque.redis)
27
46
  if resque_url != redis_url
data/config/routes.rb CHANGED
@@ -4,6 +4,7 @@ ZuoraConnect::Engine.routes.draw do
4
4
 
5
5
  if ENV['PROVISION_USER'].present? && ENV['PROVISION_SECRET'].present?
6
6
  post '/provision' => 'static#provision'
7
+ post '/instance/:id/drop' => 'static#instance_drop'
7
8
  get '/instance/:id/user' => 'static#instance_user'
8
9
  end
9
10
 
@@ -2,15 +2,18 @@ namespace :db do
2
2
  desc 'Also create shared_extensions Schema'
3
3
  task :extensions => :environment do
4
4
  # Create Schema
5
- at_exit {
6
- ActiveRecord::Base.connection.execute 'CREATE SCHEMA IF NOT EXISTS shared_extensions;'
7
- # Enable Hstore
8
- ActiveRecord::Base.connection.execute 'CREATE EXTENSION IF NOT EXISTS HSTORE SCHEMA shared_extensions;'
9
- # Enable UUID-OSSP
10
- ActiveRecord::Base.connection.execute 'CREATE EXTENSION IF NOT EXISTS "uuid-ossp" SCHEMA shared_extensions;'
11
- }
5
+ ActiveRecord::Base.connection.execute 'CREATE SCHEMA IF NOT EXISTS shared_extensions;'
6
+ # Enable Hstore
7
+ ActiveRecord::Base.connection.execute 'CREATE EXTENSION IF NOT EXISTS HSTORE SCHEMA shared_extensions;'
8
+ # Enable UUID-OSSP
9
+ ActiveRecord::Base.connection.execute 'CREATE EXTENSION IF NOT EXISTS "uuid-ossp" SCHEMA shared_extensions;'
12
10
  end
13
11
  end
14
12
 
15
- Rake::Task["db:create"].enhance [:extensions]
16
- Rake::Task["db:test:purge"].enhance [:extensions]
13
+ Rake::Task["db:create"].enhance do
14
+ Rake::Task["db:extensions"].invoke
15
+ end
16
+
17
+ Rake::Task["db:test:purge"].enhance do
18
+ Rake::Task["db:extensions"].invoke
19
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ZuoraConnect
4
- VERSION = "3.1.2"
4
+ VERSION = "3.1.5"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zuora_connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.2
4
+ version: 3.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Connect Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-21 00:00:00.000000000 Z
11
+ date: 2022-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: apartment