openstax_utilities 4.4.0 → 4.5.2

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: 23bd083b2474dd40ea6848f919c4adbc50cc1cbaa927b8de0f968888100a3f8d
4
- data.tar.gz: 0a35031fbb7df47f6675307130187e24e9bf4bec4699c8a129c0697832877653
3
+ metadata.gz: 1a0f5f4c56fdba82e036469ad782df61b733f67e3061ea4c12416257d399e477
4
+ data.tar.gz: 063645a0e123dc5e916f499a4ce3ecfa734a04a2092742e9bb5c200be52a55c7
5
5
  SHA512:
6
- metadata.gz: b3bee8a0ca7d846e020da56ff82a50bde40317e772e7287d8853c8847009fa1ec857bc79865c8850f9f69a7e50817c1e3e2a85188ab35de21607fa0038b32397
7
- data.tar.gz: 3a11784b8209459777082d0939c5d2ad6e2ee5373476f518056586b5ceb0d2371ecf2362ee8ffee1755e1321bf6e30d09be32e5ef791958782a801f19131b2f5
6
+ metadata.gz: f698f5074753000c1a83989a6aa78238d00fb17291390c8f0abef3eb7112be2fa4edb72a068bdfade5cab9f56df401a8027bfff79b1b0af521557b8795e2682f
7
+ data.tar.gz: c1aa9accccf3acad744e2090762f6c83af9c3e2cc0f0d8f2d0c30eb2b8277b40490740d741403c53a643b9666bfa24f0454a0a1b6a8a1d5dceef0e4ad7207f24
@@ -1,16 +1,19 @@
1
1
  require 'aws-sdk-autoscaling'
2
2
 
3
3
  class OpenStax::Utilities::StatusController < ActionController::Base
4
+ before_action :authenticate
5
+
4
6
  layout 'openstax/utilities/status'
5
7
 
6
8
  def index
7
- @application_name = Rails.application.class.parent_name
9
+ @application_name = OSU::SITE_NAME.humanize
8
10
  @environment_name = Rails.application.secrets.environment_name
9
11
 
10
12
  @statuses = if @environment_name == 'development'
11
13
  [ [ 'local', 1, 1, :ok ] ]
12
14
  else
13
- queues = Delayed::Worker.queue_attributes.keys.map(&:to_s) - [ 'migration' ]
15
+ queues = Module.const_defined?(:Delayed) && Delayed.const_defined?(:Worker) ?
16
+ Delayed::Worker.queue_attributes.keys.map(&:to_s) - [ 'migration' ] : []
14
17
  asgs = [ 'migration', 'web', 'cron', 'background' ] + queues.map do |queue|
15
18
  "background-#{queue}"
16
19
  end
@@ -25,17 +28,24 @@ class OpenStax::Utilities::StatusController < ActionController::Base
25
28
  ).chomp('-asg')
26
29
 
27
30
  status = if asg.desired_capacity == 0
28
- if asg.instances.size > 0
29
- :shutting_down
30
- elsif [ 'web', 'background', 'cron' ].include?(name)
31
+ if [ 'web', 'background', 'cron' ].include?(name)
31
32
  :configuration_error
33
+ elsif asg.instances.size > 0
34
+ :shutting_down
32
35
  else
33
36
  :sleeping
34
37
  end
35
38
  elsif asg.instances.all? do |instance|
36
39
  instance.health_status != 'Healthy' || instance.lifecycle_state != 'InService'
37
40
  end
38
- :down
41
+ case name
42
+ when 'web'
43
+ :down
44
+ when 'background', 'cron'
45
+ :impacted
46
+ else
47
+ :offline
48
+ end
39
49
  elsif name == 'migration'
40
50
  :migrating
41
51
  elsif asg.max_size > 1 && asg.desired_capacity == asg.max_size
@@ -63,4 +73,10 @@ class OpenStax::Utilities::StatusController < ActionController::Base
63
73
  end
64
74
  end
65
75
  end
76
+
77
+ protected
78
+
79
+ def authenticate
80
+ instance_exec &OpenStax::Utilities.configuration.status_authenticate
81
+ end
66
82
  end
@@ -13,12 +13,10 @@
13
13
  </head>
14
14
 
15
15
  <body id="status" class="status">
16
- <header>
17
- <h2 style="margin-left: 16px;"><%= title %></h2>
18
- </header>
16
+ <div class="body">
17
+ <div class="body-container" style="margin-left: 16px;">
18
+ <header><h2><%= title %></h2></header>
19
19
 
20
- <div class="body" style="margin-left: 16px;">
21
- <div class="body-container">
22
20
  <%= yield %>
23
21
  </div>
24
22
  </div>
@@ -1,13 +1,15 @@
1
1
  <%
2
2
  status_icons = {
3
- down: '💀',
4
- configuration_error: '⚠️',
5
- shutting_down: '😪',
3
+ configuration_error: '💀',
4
+ down: '💥',
5
+ impacted: '⚠️',
6
6
  at_capacity: '🥵',
7
+ migrating: '💾',
7
8
  scaling_down: '📉',
8
9
  scaling_up: '📈',
9
- migrating: '💾',
10
10
  ok: '✅',
11
+ shutting_down: '😪',
12
+ offline: '🔌',
11
13
  sleeping: '💤'
12
14
  }
13
15
 
@@ -23,6 +25,11 @@
23
25
  <li>
24
26
  Frontend (tutor-js): <%= OpenStax::Utilities::Assets.manifest.version || 'not deployed' %>
25
27
  </li>
28
+ <li>
29
+ Deployment (tutor-deployment): <%=
30
+ Rails.application.secrets.deployment_version || 'not deployed'
31
+ %>
32
+ </li>
26
33
  </ul>
27
34
 
28
35
  <% status = status_icons.find { |key, _| @statuses.any? { |_, _, _, status| status == key } } %>
@@ -11,7 +11,11 @@ module OpenStax
11
11
  isolate_namespace OpenStax::Utilities
12
12
 
13
13
  config.after_initialize do
14
- OSU::SITE_NAME = ::Rails.application.class.parent_name.underscore
14
+ if Rails::VERSION::MAJOR == 6
15
+ OSU::SITE_NAME = ::Rails.application.class.module_parent_name.underscore
16
+ else
17
+ OSU::SITE_NAME = ::Rails.application.class.parent_name.underscore
18
+ end
15
19
  end
16
20
 
17
21
  config.generators do |g|
@@ -1,5 +1,5 @@
1
1
  module OpenStax
2
2
  module Utilities
3
- VERSION = '4.4.0'
3
+ VERSION = '4.5.2'
4
4
  end
5
5
  end
@@ -57,11 +57,13 @@ module OpenStax
57
57
  attr_accessor :standard_date_format
58
58
  attr_accessor :standard_datetime_format
59
59
  attr_accessor :standard_time_format
60
+ attr_accessor :status_authenticate
60
61
 
61
62
  def initialize
62
63
  @standard_date_format = "%b %d, %Y"
63
64
  @standard_datetime_format = "%b %d, %Y %l:%M %p %Z"
64
65
  @standard_time_format = "%l:%M %p %Z"
66
+ @status_authenticate = -> { head :forbidden }
65
67
  super
66
68
  end
67
69
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openstax_utilities
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.4.0
4
+ version: 4.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - JP Slavinsky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-05 00:00:00.000000000 Z
11
+ date: 2021-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '5.0'
20
+ - - "<"
18
21
  - !ruby/object:Gem::Version
19
- version: '5.2'
22
+ version: '7.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '5.0'
30
+ - - "<"
25
31
  - !ruby/object:Gem::Version
26
- version: '5.2'
32
+ version: '7.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: lev
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -253,7 +259,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
253
259
  - !ruby/object:Gem::Version
254
260
  version: '0'
255
261
  requirements: []
256
- rubygems_version: 3.1.4
262
+ rubygems_version: 3.2.7
257
263
  signing_key:
258
264
  specification_version: 4
259
265
  summary: Utilities for OpenStax web sites