uffizzi_core 0.7.1 → 0.8.0

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: 25654d45dce9f26feb5a3cca55a5891bb389216e749512b2900898bec4a8da0b
4
- data.tar.gz: cb7784c03bcffb216adc343ae30e0ef0c51e3038791da4fe0229b86179cdc8e9
3
+ metadata.gz: 8dea69b2a59531600dfb66428f656f48199aca57b46090feb7908c4c2649d6a0
4
+ data.tar.gz: '0049394671ce7727844814ebe46a671a9a1d420063546d5d12faf1d61748f5bb'
5
5
  SHA512:
6
- metadata.gz: c3b6ae9974961ae5d39e723264e6c72fa0f4dfa9f99085a6550a98af67afd6ddcbd92f98e7f815ff602bb7f6a3144d2f87ac9d61a58f228099b9dedd537ce6be
7
- data.tar.gz: 572bcfcc9d1e3396d721a83a60c703db10c0b3848031e35b63aa26065b67ceb6fc11bb5278fd6b383e4686a5885758d45d69b0a3c3314cda4f6d93fc3a81d93b
6
+ metadata.gz: 278c7ce3923efa9d4db4476eb3ddad88c28b664af7fbf75a0c7547921d478ad6860fd7ea5987932bbcdcf1d01a418c55bac388a864e1f186468d3ec163f911cf
7
+ data.tar.gz: 83927e7d75d0e926cc1d42f16f31c9e086de1daedd33cb1315b60e118896f9d90b3ee102893ef7e9716e7e354c793610e609ae64aaf7be1657694fe166a62480
@@ -51,6 +51,7 @@ class UffizziCore::Api::Cli::V1::Deployment::CreateForm < UffizziCore::Deploymen
51
51
  validate :check_exists_ingress_container
52
52
  validate :check_max_memory_limit
53
53
  validate :check_max_memory_request
54
+ validate :check_secrets_exist_in_database
54
55
 
55
56
  def assign_dependences!(project, user)
56
57
  self.project = project
@@ -91,4 +92,17 @@ class UffizziCore::Api::Cli::V1::Deployment::CreateForm < UffizziCore::Deploymen
91
92
 
92
93
  errors.add(:containers, :max_memory_request_error, max: project.account.container_memory_limit)
93
94
  end
95
+
96
+ def check_secrets_exist_in_database
97
+ return if compose_file.nil?
98
+
99
+ existing_secrets = project.secrets.pluck('name')
100
+ compose_file.template.payload['containers_attributes']
101
+ .map { |container| container['secret_variables'].map { |secret| secret['name'] } }.flatten.uniq
102
+ .select { |secret| existing_secrets.exclude?(secret) }
103
+ .each do |secret|
104
+ error_message = I18n.t('compose.project_secret_not_found', secret: secret)
105
+ errors.add(:secret_variables, error_message)
106
+ end
107
+ end
94
108
  end
@@ -41,12 +41,7 @@ class UffizziCore::Controller::DeployContainers::ContainerSerializer < UffizziCo
41
41
  end
42
42
 
43
43
  def tag
44
- case object.repo.type
45
- when UffizziCore::Repo::Github.name
46
- UffizziCore::RepoService.tag(object.repo)
47
- else
48
- object.tag
49
- end
44
+ object.tag
50
45
  end
51
46
 
52
47
  def entrypoint
@@ -20,11 +20,7 @@ class UffizziCore::DeploymentService
20
20
  deployment_form.creation_source = UffizziCore::Deployment.creation_source.compose_file_manual
21
21
  deployment_form.metadata = metadata || {}
22
22
 
23
- if deployment_form.save
24
- update_subdomain!(deployment_form)
25
-
26
- UffizziCore::Deployment::CreateJob.perform_async(deployment_form.id)
27
- end
23
+ run_deployment_creation_tasks(deployment_form) if deployment_form.save
28
24
 
29
25
  deployment_form
30
26
  end
@@ -91,27 +87,28 @@ class UffizziCore::DeploymentService
91
87
  end
92
88
 
93
89
  def build_subdomain(deployment)
94
- if deployment.continuous_preview_payload.present?
95
- continuous_preview_payload = deployment.continuous_preview_payload
90
+ return build_docker_continuous_preview_subdomain(deployment) if deployment&.continuous_preview_payload&.fetch('docker', nil).present?
96
91
 
97
- return build_pull_request_subdomain(deployment) if continuous_preview_payload['pull_request'].present?
98
- return build_docker_continuous_preview_subdomain(deployment) if continuous_preview_payload['docker'].present?
99
- end
92
+ github_metadata = deployment.metadata.dig('labels', 'github')
93
+ return build_pull_request_subdomain(deployment) if
94
+ github_metadata&.dig('pull_request', 'number').present? && github_metadata&.dig('repository').present?
100
95
 
101
96
  build_default_subdomain(deployment)
102
97
  end
103
98
 
104
99
  def build_pull_request_subdomain(deployment)
105
- project = deployment.project
106
- continuous_preview_payload = deployment.continuous_preview_payload
107
- pull_request_payload = continuous_preview_payload['pull_request']
108
- repo_name = pull_request_payload['repository_full_name'].split('/').last
109
- deployment_name = name(deployment)
110
- subdomain = "pr#{pull_request_payload['id']}-#{deployment_name}-#{repo_name}-#{project.slug}"
111
-
100
+ github_payload = deployment.metadata.dig('labels', 'github')
101
+ repo_name = github_payload['repository'].split('/').last
102
+ pull_request_number = github_payload['pull_request']['number']
103
+ subdomain = "pr-#{pull_request_number}-#{name(deployment)}-#{repo_name}-#{deployment.project.slug}"
112
104
  format_subdomain(subdomain)
113
105
  end
114
106
 
107
+ def update_subdomain!(deployment)
108
+ deployment.subdomain = build_subdomain(deployment)
109
+ deployment.save!
110
+ end
111
+
115
112
  def build_docker_continuous_preview_subdomain(deployment)
116
113
  project = deployment.project
117
114
  continuous_preview_payload = deployment.continuous_preview_payload
@@ -204,12 +201,6 @@ class UffizziCore::DeploymentService
204
201
  "deployment-#{deployment.id}"
205
202
  end
206
203
 
207
- def update_subdomain!(deployment)
208
- deployment.subdomain = build_subdomain(deployment)
209
-
210
- deployment.save!
211
- end
212
-
213
204
  def pull_request_payload_present?(deployment)
214
205
  deployment.continuous_preview_payload.present? && deployment.continuous_preview_payload['pull_request'].present?
215
206
  end
@@ -222,6 +213,12 @@ class UffizziCore::DeploymentService
222
213
 
223
214
  private
224
215
 
216
+ def run_deployment_creation_tasks(deployment)
217
+ update_subdomain!(deployment)
218
+
219
+ UffizziCore::Deployment::CreateJob.perform_async(deployment.id)
220
+ end
221
+
225
222
  def deployment_process_status(deployment)
226
223
  containers = deployment.active_containers
227
224
  activity_items = containers.map { |container| container.activity_items.order_by_id.last }.compact
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module UffizziCore
4
- VERSION = '0.7.1'
4
+ VERSION = '0.8.0'
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: 0.7.1
4
+ version: 0.8.0
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: 2022-08-23 00:00:00.000000000 Z
12
+ date: 2022-08-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aasm
@@ -829,7 +829,6 @@ files:
829
829
  - app/models/uffizzi_core/repo/azure.rb
830
830
  - app/models/uffizzi_core/repo/docker_hub.rb
831
831
  - app/models/uffizzi_core/repo/docker_registry.rb
832
- - app/models/uffizzi_core/repo/github.rb
833
832
  - app/models/uffizzi_core/repo/github_container_registry.rb
834
833
  - app/models/uffizzi_core/repo/google.rb
835
834
  - app/models/uffizzi_core/role.rb
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class UffizziCore::Repo::Github < UffizziCore::Repo
4
- end