uffizzi_core 0.7.1 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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