uffizzi_core 2.3.1 → 2.4.1

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: 3850d2cd7d36ca24933339885fe25fb104362e70a23c0b5145ab4711d8ce7ac9
4
- data.tar.gz: 4872ba53b94906dc638b2a34875cd59876b074a8d815754b662320bf3119b87a
3
+ metadata.gz: 2132ab2650112542b20ad1d7710dd70927e4e5b2847ecfc22b095776a7839cfd
4
+ data.tar.gz: 139b01b159ccf2a464109277a2bedefac4b95cbd7d3dd8f5ccbe6a8192a12bd7
5
5
  SHA512:
6
- metadata.gz: d54a01d42754e16b6d351aff2eb87a7dbcccd65344c3e61b3ff21f4a299755604aa330cfdfa7029038747b465c35d8694523e3f85c5f93763860565df76f0b9e
7
- data.tar.gz: ad6654bb2bf294fa609ef61de08130ffba6071fcf600faad72c274093df1048f7adb16e53a49e552cbc94c5b3cf0b70ee40bf46188a66eda4518e57d693bb1db
6
+ metadata.gz: b0757185b908b94ac4c64288367810c58b0684f2d8cabc982d05182819d15608f40932cae3982e617887c0b34ee56193e45ca35a44edf7c83c7ce6c3cd6545ac
7
+ data.tar.gz: c419911fce7cc72693f13d4b98b7c429a99c81bb163ff3f4034b4ee2cb7877acec6efa1e29cc667c5ac6bd4844fdeef70b4087635505388bf960fd25c0a6da76
@@ -60,6 +60,14 @@ class UffizziCore::Api::Cli::V1::Projects::ClustersController < UffizziCore::Api
60
60
  respond_with resource_cluster
61
61
  end
62
62
 
63
+ def sync
64
+ cluster_form = resource_cluster.becomes(UffizziCore::Api::Cli::V1::Cluster::SyncForm)
65
+ cluster_form.sync_status
66
+ cluster_form.save
67
+
68
+ respond_with cluster_form
69
+ end
70
+
63
71
  def destroy
64
72
  resource_cluster.disable!
65
73
 
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ class UffizziCore::Api::Cli::V1::Cluster::SyncForm < UffizziCore::Cluster
4
+ include UffizziCore::ApplicationForm
5
+
6
+ permit :state
7
+
8
+ def sync_status
9
+ cluster_data = UffizziCore::ControllerService.show_cluster(self)
10
+
11
+ asleep_in_cluster = cluster_data.status.sleep
12
+ return unless deployed? || scaled_down?
13
+ return if actual_status?(asleep_in_cluster)
14
+
15
+ self.state = asleep_in_cluster ? UffizziCore::Cluster::STATE_SCALED_DOWN : UffizziCore::Cluster::STATE_DEPLOYED
16
+
17
+ self
18
+ end
19
+
20
+ private
21
+
22
+ def actual_status?(asleep_in_cluster)
23
+ (asleep_in_cluster && scaled_down?) || (!asleep_in_cluster && deployed?)
24
+ end
25
+ end
@@ -2,6 +2,7 @@
2
2
 
3
3
  module UffizziCore::Concerns::Models::Container
4
4
  extend ActiveSupport::Concern
5
+ REQUEST_MEMORY_RATIO = 4
5
6
 
6
7
  # rubocop:disable Metrics/BlockLength
7
8
  included do
@@ -21,6 +21,10 @@ class UffizziCore::Api::Cli::V1::Projects::ClustersPolicy < UffizziCore::Applica
21
21
  context.user_access_module.admin_or_developer_access_to_project?(context.user, context.project)
22
22
  end
23
23
 
24
+ def sync?
25
+ context.user_access_module.admin_or_developer_access_to_project?(context.user, context.project)
26
+ end
27
+
24
28
  def destroy?
25
29
  context.user_access_module.admin_or_developer_access_to_project?(context.user, context.project)
26
30
  end
@@ -29,6 +29,7 @@ class UffizziCore::ComposeFile::Builders::ContainerBuilderService
29
29
  is_ingress = ingress_container?(container_name, ingress_data)
30
30
  repo_attributes = repo_attributes(container_data, continuous_preview_global_data)
31
31
  additional_subdomains = is_ingress ? ingress_data.fetch(:additional_subdomains, []) : []
32
+ memory_limit = memory_limit(deploy_data)
32
33
 
33
34
  {
34
35
  tag: tag(image_data, repo_attributes),
@@ -40,8 +41,8 @@ class UffizziCore::ComposeFile::Builders::ContainerBuilderService
40
41
  command: command(container_data),
41
42
  variables: variables(environment, env_file_dependencies),
42
43
  secret_variables: secret_variables(secrets),
43
- memory_limit: memory(deploy_data),
44
- memory_request: memory(deploy_data),
44
+ memory_limit: memory_limit,
45
+ memory_request: memory_request(memory_limit),
45
46
  repo_attributes: repo_attributes,
46
47
  continuously_deploy: continuously_deploy(deploy_data),
47
48
  receive_incoming_requests: is_ingress,
@@ -161,7 +162,7 @@ class UffizziCore::ComposeFile::Builders::ContainerBuilderService
161
162
  command_data[:command_args].to_s
162
163
  end
163
164
 
164
- def memory(deploy_data)
165
+ def memory_limit(deploy_data)
165
166
  memory = deploy_data[:memory]
166
167
  return Settings.compose.default_memory if memory.nil?
167
168
 
@@ -184,6 +185,10 @@ class UffizziCore::ComposeFile::Builders::ContainerBuilderService
184
185
  memory_value
185
186
  end
186
187
 
188
+ def memory_request(memory)
189
+ memory / UffizziCore::Container::REQUEST_MEMORY_RATIO
190
+ end
191
+
187
192
  def continuously_deploy(deploy_data)
188
193
  return :disabled if deploy_data[:auto] == false
189
194
 
data/config/routes.rb CHANGED
@@ -14,6 +14,7 @@ UffizziCore::Engine.routes.draw do
14
14
  member do
15
15
  put :scale_down
16
16
  put :scale_up
17
+ put :sync
17
18
  end
18
19
  scope module: :clusters do
19
20
  resources :ingresses, only: ['index']
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module UffizziCore
4
- VERSION = '2.3.1'
4
+ VERSION = '2.4.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uffizzi_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.1
4
+ version: 2.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Thurman
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-11-28 00:00:00.000000000 Z
12
+ date: 2023-12-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aasm
@@ -821,6 +821,7 @@ files:
821
821
  - app/forms/uffizzi_core/api/cli/v1/account/credential/create_form.rb
822
822
  - app/forms/uffizzi_core/api/cli/v1/account/credential/update_form.rb
823
823
  - app/forms/uffizzi_core/api/cli/v1/cluster/create_form.rb
824
+ - app/forms/uffizzi_core/api/cli/v1/cluster/sync_form.rb
824
825
  - app/forms/uffizzi_core/api/cli/v1/compose_file/check_credentials_form.rb
825
826
  - app/forms/uffizzi_core/api/cli/v1/compose_file/cli_form.rb
826
827
  - app/forms/uffizzi_core/api/cli/v1/compose_file/create_form.rb