zuora_connect 1.7.07 → 1.7.08

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
  SHA1:
3
- metadata.gz: 62d960a3791bd3d689c4001b3543aeacc6a94733
4
- data.tar.gz: 415d8a54f6f29e570e3ec2a391bb7800ef9aa1c0
3
+ metadata.gz: c5f73ba41b420d1b552236557a910cadb74a0f29
4
+ data.tar.gz: a32115c1a42f2774bbb030eeacc5480f0afcc0f4
5
5
  SHA512:
6
- metadata.gz: 835cfce87967db8a0faac7eb9d1aa519774432232829f0b02678515c6cfe076cec4a653f342a974d60914da88172cada6c714128ebc94f8f0a9a1d52b3bac439
7
- data.tar.gz: 951bb6ba48a6bf83674d0a3842230f85fa8ba7c07ccecf12d291d123ce3852a6f0b853af5eef14f6555d9b2a3ca33b82f04d017a52cba042189cf0d0afbc25df
6
+ metadata.gz: e65354cd51cfa0a818a9979a45b217d2535131b1739e15753882db63340f106ec582dc023e865221985746f99b16c725f203b1cdeb08942f6b3ae580d2a5e957
7
+ data.tar.gz: d7c556be08e52be64a65f3f9a9ceb9dd95c7a60790076b6de46dfedfe28132efce0d2b45d239c4b4d62da1a9212fd4615b9b095990e966429d37206c00f2a344
@@ -4,7 +4,7 @@ module ZuoraConnect
4
4
  default_scope {select(ZuoraConnect::AppInstance.column_names.delete_if {|x| ["catalog_mapping", "catalog"].include?(x) }) }
5
5
  after_initialize :init
6
6
  self.table_name = "zuora_connect_app_instances"
7
- attr_accessor :options, :mode, :logins, :task_data, :last_refresh, :username, :password, :s3_client, :api_version, :drop_message
7
+ attr_accessor :options, :mode, :logins, :task_data, :last_refresh, :username, :password, :s3_client, :api_version, :drop_message, :new_session_message, :connect_user
8
8
  @@telegraf_host = nil
9
9
  REFRESH_TIMEOUT = 2.minute #Used to determine how long to wait on current refresh call before executing another
10
10
  INSTANCE_REFRESH_WINDOW = 1.hours #Used to set how how long till app starts attempting to refresh cached task connect data
@@ -13,9 +13,10 @@ module ZuoraConnect
13
13
  BLANK_OBJECT_ID_LOOKUP = 'BlankValueSupplied'
14
14
 
15
15
  def init
16
- @options = Hash.new
17
- @logins = Hash.new
18
- @api_version = "v2"
16
+ self.connect_user = 'Nobody'
17
+ self.options = Hash.new
18
+ self.logins = Hash.new
19
+ self.api_version = "v2"
19
20
  self.attr_builder("timezone", ZuoraConnect.configuration.default_time_zone)
20
21
  self.attr_builder("locale", ZuoraConnect.configuration.default_locale)
21
22
  PaperTrail.whodunnit = "Backend" if defined?(PaperTrail)
@@ -38,11 +39,13 @@ module ZuoraConnect
38
39
  Thread.current[:appinstance] = self
39
40
  end
40
41
 
41
- def new_session(session: self.data_lookup, username: self.access_token, password: self.refresh_token, holding_pattern: false, log_level: Logger::INFO)
42
- @api_version = "v2"
43
- @username = username
44
- @password = password
45
- @last_refresh = session["#{self.id}::last_refresh"]
42
+ def new_session(session: self.data_lookup, username: self.access_token, password: self.refresh_token, holding_pattern: false, log_level: Logger::DEBUG)
43
+ self.api_version = "v2"
44
+ self.username = username
45
+ self.password = password
46
+ self.last_refresh = session["#{self.id}::last_refresh"]
47
+ self.connect_user = session["#{self.id}::user::email"]
48
+ PaperTrail.whodunnit = self.connect_user if defined?(PaperTrail)
46
49
 
47
50
  ## DEV MODE TASK DATA MOCKUP
48
51
  if ZuoraConnect.configuration.mode != "Production"
@@ -52,7 +55,7 @@ module ZuoraConnect
52
55
 
53
56
  case ZuoraConnect.configuration.dev_mode_options.class
54
57
  when Hash
55
- @options = ZuoraConnect.configuration.dev_mode_options
58
+ self.options = ZuoraConnect.configuration.dev_mode_options
56
59
  when Array
57
60
  mock_task_data["options"] = ZuoraConnect.configuration.dev_mode_options
58
61
  end
@@ -67,34 +70,34 @@ module ZuoraConnect
67
70
  time_expire = (session["#{self.id}::last_refresh"] || Time.now).to_i - INSTANCE_REFRESH_WINDOW.ago.to_i
68
71
 
69
72
  if session.empty?
70
- Rails.logger.add(log_level, "[#{self.id}] REFRESHING - Session Empty")
73
+ self.new_session_message = "REFRESHING - Session Empty"
71
74
  raise ZuoraConnect::Exceptions::HoldingPattern if holding_pattern && !self.mark_for_refresh
72
75
  self.refresh(session)
73
76
 
74
77
  elsif (self.id != session["appInstance"].to_i)
75
- Rails.logger.add(log_level,"[#{self.id}] REFRESHING - AppInstance ID(#{self.id}) does not match session id(#{session["appInstance"].to_i})")
78
+ self.new_session_message = "REFRESHING - AppInstance ID(#{self.id}) does not match session id(#{session["appInstance"].to_i})"
76
79
  raise ZuoraConnect::Exceptions::HoldingPattern if holding_pattern && !self.mark_for_refresh
77
80
  self.refresh(session)
78
81
 
79
82
  elsif session["#{self.id}::task_data"].blank?
80
- Rails.logger.add(log_level,"[#{self.id}] REFRESHING - Task Data Blank")
83
+ self.new_session_message = "REFRESHING - Task Data Blank"
81
84
  raise ZuoraConnect::Exceptions::HoldingPattern if holding_pattern && !self.mark_for_refresh
82
85
  self.refresh(session)
83
86
 
84
87
  elsif session["#{self.id}::last_refresh"].blank?
85
- Rails.logger.add(log_level,"[#{self.id}] REFRESHING - No Time on Cookie")
88
+ self.new_session_message = "REFRESHING - No Time on Cookie"
86
89
  raise ZuoraConnect::Exceptions::HoldingPattern if holding_pattern && !self.mark_for_refresh
87
90
  self.refresh(session)
88
91
 
89
92
  # If the cache is expired and we can aquire a refresh lock
90
93
  elsif (session["#{self.id}::last_refresh"].to_i < INSTANCE_REFRESH_WINDOW.ago.to_i) && self.mark_for_refresh
91
- Rails.logger.add(log_level,"[#{self.id}] REFRESHING - Session Old by #{time_expire.abs} second")
94
+ self.new_session_message = "REFRESHING - Session Old by #{time_expire.abs} second"
92
95
  self.refresh(session)
93
96
  else
94
97
  if time_expire < 0
95
- Rails.logger.add(log_level,["[#{self.id}] REBUILDING - Expired by #{time_expire} seconds", self.marked_for_refresh? ? " cache updating as of #{self.reset_mark_refreshed_at} seconds ago" : nil].compact.join(','))
98
+ self.new_session_message = ["REBUILDING - Expired by #{time_expire} seconds", self.marked_for_refresh? ? " cache updating as of #{self.reset_mark_refreshed_at} seconds ago" : nil].compact.join(',')
96
99
  else
97
- Rails.logger.add(log_level,"[#{self.id}] REBUILDING - Expires in #{time_expire} seconds")
100
+ self.new_session_message = "REBUILDING - Expires in #{time_expire} seconds"
98
101
  end
99
102
  self.build_task(task_data: session["#{self.id}::task_data"], session: session)
100
103
  end
@@ -108,12 +111,15 @@ module ZuoraConnect
108
111
  return self
109
112
  rescue ZuoraConnect::Exceptions::HoldingPattern => ex
110
113
  while self.marked_for_refresh?
111
- Rails.logger.add(log_level, "[#{self.id}] Holding - Expires in #{self.reset_mark_expires_at}")
114
+ Rails.logger.add(log_level, "Holding - Expires in #{self.reset_mark_expires_at}")
112
115
  sleep(5)
113
116
  end
114
117
  self.reload_attributes([:refresh_token, :oauth_expires_at, :access_token])
115
118
  session = self.data_lookup(session: session)
116
119
  retry
120
+
121
+ ensure
122
+ Rails.logger.add(log_level, self.new_session_message)
117
123
  end
118
124
 
119
125
  def refresh(session = nil)
@@ -358,9 +364,6 @@ module ZuoraConnect
358
364
  end
359
365
 
360
366
  def data_lookup(session: {})
361
- if defined?(PaperTrail)
362
- PaperTrail.whodunnit = session["#{self.id}::user::email"].present? ? session["#{self.id}::user::email"] : nil if session.present?
363
- end
364
367
  if defined?(Redis.current)
365
368
  cached_instance = Redis.current.get("AppInstance:#{self.id}")
366
369
  if cached_instance.blank?
@@ -368,7 +371,7 @@ module ZuoraConnect
368
371
  return session
369
372
  else
370
373
  Rails.logger.debug("[#{self.id}] Cached AppInstance Found")
371
- return decrypt_data(data: cached_instance, rescue_return: session)
374
+ return decrypt_data(data: cached_instance, rescue_return: session).merge(session)
372
375
  end
373
376
  else
374
377
  return session
@@ -33,17 +33,25 @@ module ZuoraConnect
33
33
  require 'lograge'
34
34
  logger = ActiveSupport::Logger.new(STDOUT)
35
35
  logger.formatter = ::Logger::Formatter.new
36
+ # logger.formatter = proc do |severity, datetime, progname, msg|
37
+ # {severity: severity, time: datetime.strftime('%FT%T.%6N'), process_id: Process.pid, message: msg }.to_json
38
+ # end
36
39
  Rails.configuration.logger = ActiveSupport::TaggedLogging.new(logger)
40
+ Rails.configuration.log_tags = [:uuid]
37
41
  Rails.configuration.lograge.enabled = true
38
42
  Rails.configuration.lograge.formatter = Lograge::Formatters::Json.new
39
43
  Rails.configuration.lograge.custom_options = lambda do |event|
40
44
  exceptions = %w(controller action format id)
41
- {
42
- appinstance_id: Thread.current[:appinstance].present? ? Thread.current[:appinstance].id : 0,
45
+ items = {
46
+ #time: event.time.strftime('%FT%T.%6N'),
43
47
  params: event.payload[:params].except(*exceptions),
44
48
  exception: event.payload[:exception],
45
- exception_object: event.payload[:exception_object]
49
+ exception_object: event.payload[:exception_object],
50
+ process_id: Process.pid
46
51
  }
52
+ if Thread.current[:appinstance].present?
53
+ items.merge({appinstance_id: Thread.current[:appinstance].id, connect_user: Thread.current[:appinstance].connect_user, new_session: Thread.current[:appinstance].new_session_message})
54
+ end
47
55
  end
48
56
  end
49
57
  end
@@ -1,3 +1,3 @@
1
1
  module ZuoraConnect
2
- VERSION = "1.7.07"
2
+ VERSION = "1.7.08"
3
3
  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: 1.7.07
4
+ version: 1.7.08
5
5
  platform: ruby
6
6
  authors:
7
7
  - Connect Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-19 00:00:00.000000000 Z
11
+ date: 2018-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: apartment