uffizzi_core 2.2.8 → 2.2.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/concerns/uffizzi_core/dependency_injection_concern.rb +6 -0
- data/app/controllers/uffizzi_core/api/cli/v1/projects/clusters_controller.rb +16 -2
- data/app/jobs/uffizzi_core/cluster/delete_job.rb +3 -1
- data/app/jobs/uffizzi_core/cluster/deploy_job.rb +1 -1
- data/app/jobs/uffizzi_core/cluster/manage_deploying_job.rb +1 -1
- data/app/jobs/uffizzi_core/deployment/delete_job.rb +3 -1
- data/app/lib/uffizzi_core/concerns/models/project.rb +2 -2
- data/app/lib/uffizzi_core/concerns/models/user.rb +1 -1
- data/app/repositories/uffizzi_core/cluster_repo.rb +1 -0
- data/app/services/uffizzi_core/ci_service.rb +9 -0
- data/config/locales/en.activerecord.yml +4 -0
- data/lib/uffizzi_core/version.rb +1 -1
- data/lib/uffizzi_core.rb +1 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9419a80d61cb906e699b4096f7ed6f10fc01f32a6718a977c38387d04af04cb9
|
4
|
+
data.tar.gz: 279eda26ef9283fc173d93f5b7fc166780ffaa51e2dd83b0be7fbea1ba7862cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 646d0199efbd24eddd77def2b0f8a629e16f81b3f6f871a9961b2cde46f37b5609fbc6662eec3f5e74e74a879ddba1cf504776a767c738ab8127eb28a555e9a5
|
7
|
+
data.tar.gz: 98c028198257d7bd268b4c6bfaa7a6663be35530f6ed1218d2108e7d6602a43122538a6c54cec92d5ff0d7c247d2e6f1a50a32885600e43a13554a15d514235a
|
@@ -9,8 +9,9 @@ class UffizziCore::Api::Cli::V1::Projects::ClustersController < UffizziCore::Api
|
|
9
9
|
|
10
10
|
def index
|
11
11
|
clusters = resource_project.clusters.enabled
|
12
|
+
return respond_with clusters if request_by_admin? || valid_request_from_ci_workflow?
|
12
13
|
|
13
|
-
respond_with clusters
|
14
|
+
respond_with clusters.deployed_by_user(current_user)
|
14
15
|
end
|
15
16
|
|
16
17
|
def create
|
@@ -37,7 +38,20 @@ class UffizziCore::Api::Cli::V1::Projects::ClustersController < UffizziCore::Api
|
|
37
38
|
private
|
38
39
|
|
39
40
|
def resource_cluster
|
40
|
-
|
41
|
+
active_project_clusters = resource_project.clusters.enabled
|
42
|
+
@resource_cluster ||= if request_by_admin? || valid_request_from_ci_workflow?
|
43
|
+
active_project_clusters.find_by!(name: params[:name])
|
44
|
+
else
|
45
|
+
active_project_clusters.deployed_by_user(current_user).find_by!(name: params[:name])
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def request_by_admin?
|
50
|
+
current_user.admin_access_to_project?(resource_project)
|
51
|
+
end
|
52
|
+
|
53
|
+
def valid_request_from_ci_workflow?
|
54
|
+
ci_module.valid_request_from_ci_workflow?(params)
|
41
55
|
end
|
42
56
|
|
43
57
|
def cluster_params
|
@@ -1,7 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class UffizziCore::Cluster::DeleteJob < UffizziCore::ApplicationJob
|
4
|
-
sidekiq_options queue: :
|
4
|
+
sidekiq_options queue: :clusters,
|
5
|
+
lock: :until_executed,
|
6
|
+
retry: Settings.default_job_retry_count
|
5
7
|
|
6
8
|
def perform(id)
|
7
9
|
Rails.logger.info("DEPLOYMENT_PROCESS cluster_id=#{id} DeleteJob")
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class UffizziCore::Cluster::DeployJob < UffizziCore::ApplicationJob
|
4
|
-
sidekiq_options queue: :
|
4
|
+
sidekiq_options queue: :clusters, retry: Settings.default_job_retry_count
|
5
5
|
|
6
6
|
def perform(id)
|
7
7
|
cluster = UffizziCore::Cluster.find(id)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class UffizziCore::Cluster::ManageDeployingJob < UffizziCore::ApplicationJob
|
4
|
-
sidekiq_options queue: :
|
4
|
+
sidekiq_options queue: :clusters, retry: Settings.default_job_retry_count
|
5
5
|
|
6
6
|
def perform(id, try = 1)
|
7
7
|
cluster = UffizziCore::Cluster.find(id)
|
@@ -1,7 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class UffizziCore::Deployment::DeleteJob < UffizziCore::ApplicationJob
|
4
|
-
sidekiq_options queue: :
|
4
|
+
sidekiq_options queue: :disable_deployments,
|
5
|
+
lock: :until_executed,
|
6
|
+
retry: Settings.default_job_retry_count
|
5
7
|
|
6
8
|
def perform(id)
|
7
9
|
Rails.logger.info("DEPLOYMENT_PROCESS deployment_id=#{id} DeleteJob")
|
@@ -24,8 +24,8 @@ module UffizziCore::Concerns::Models::Project
|
|
24
24
|
has_many :host_volume_files, dependent: :destroy
|
25
25
|
has_many :clusters, dependent: :destroy
|
26
26
|
|
27
|
-
validates :name, presence: true, uniqueness: { scope: :account
|
28
|
-
validates :slug, presence: true, uniqueness:
|
27
|
+
validates :name, presence: true, uniqueness: { scope: :account }
|
28
|
+
validates :slug, presence: true, uniqueness: true
|
29
29
|
|
30
30
|
aasm(:state) do
|
31
31
|
state :active, initial: true
|
@@ -53,7 +53,7 @@ module UffizziCore::Concerns::Models::User
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def admin_access_to_project?(project)
|
56
|
-
|
56
|
+
project.user_projects.where(user_id: id, role: UffizziCore::UserProject.role.admin).exists?
|
57
57
|
end
|
58
58
|
end
|
59
59
|
end
|
@@ -6,5 +6,6 @@ module UffizziCore::ClusterRepo
|
|
6
6
|
included do
|
7
7
|
scope :deployed, -> { where(state: UffizziCore::Cluster::STATE_DEPLOYED) }
|
8
8
|
scope :enabled, -> { where.not(state: UffizziCore::Cluster::STATE_DISABLED) }
|
9
|
+
scope :deployed_by_user, ->(user) { where(deployed_by: user) }
|
9
10
|
end
|
10
11
|
end
|
@@ -6,6 +6,10 @@ en:
|
|
6
6
|
attributes:
|
7
7
|
secret:
|
8
8
|
not_found: There is no secret with name %{name}
|
9
|
+
name:
|
10
|
+
taken: "A project with the name '%{value}' already exists."
|
11
|
+
slug:
|
12
|
+
taken: "A project slug '%{value}' already taken."
|
9
13
|
uffizzi_core/credential:
|
10
14
|
attributes:
|
11
15
|
registry_url:
|
data/lib/uffizzi_core/version.rb
CHANGED
data/lib/uffizzi_core.rb
CHANGED
@@ -33,6 +33,7 @@ module UffizziCore
|
|
33
33
|
deployment_memory_module: 'UffizziCore::Deployment::MemoryService',
|
34
34
|
template_memory_module: 'UffizziCore::Template::MemoryService',
|
35
35
|
controller_settings: 'UffizziCore::ControllerSettingsService',
|
36
|
+
ci_module: 'UffizziCore::CiService',
|
36
37
|
}
|
37
38
|
mattr_accessor :table_names, default: {
|
38
39
|
accounts: :uffizzi_core_accounts,
|
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.2.
|
4
|
+
version: 2.2.10
|
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-
|
12
|
+
date: 2023-08-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aasm
|
@@ -423,6 +423,20 @@ dependencies:
|
|
423
423
|
- - ">="
|
424
424
|
- !ruby/object:Gem::Version
|
425
425
|
version: '0'
|
426
|
+
- !ruby/object:Gem::Dependency
|
427
|
+
name: sidekiq-unique-jobs
|
428
|
+
requirement: !ruby/object:Gem::Requirement
|
429
|
+
requirements:
|
430
|
+
- - ">="
|
431
|
+
- !ruby/object:Gem::Version
|
432
|
+
version: '0'
|
433
|
+
type: :runtime
|
434
|
+
prerelease: false
|
435
|
+
version_requirements: !ruby/object:Gem::Requirement
|
436
|
+
requirements:
|
437
|
+
- - ">="
|
438
|
+
- !ruby/object:Gem::Version
|
439
|
+
version: '0'
|
426
440
|
- !ruby/object:Gem::Dependency
|
427
441
|
name: swagger_yard
|
428
442
|
requirement: !ruby/object:Gem::Requirement
|
@@ -981,6 +995,7 @@ files:
|
|
981
995
|
- app/serializers/uffizzi_core/controller/deploy_containers/host_volume_file_serializer.rb
|
982
996
|
- app/services/uffizzi_core/account_service.rb
|
983
997
|
- app/services/uffizzi_core/activity_item_service.rb
|
998
|
+
- app/services/uffizzi_core/ci_service.rb
|
984
999
|
- app/services/uffizzi_core/cluster_service.rb
|
985
1000
|
- app/services/uffizzi_core/compose_file/builders/container_builder_service.rb
|
986
1001
|
- app/services/uffizzi_core/compose_file/builders/container_config_files_builder_service.rb
|